python 抓取网页正则表达式匹配

Citron__ 2017-09-23 06:02:10
最近刚学研究python 抓取网页。网页已经成功抓取,但是想获取想要的信息。
以下是抓取的网页:

AcloneA_2dd40={\"allowBlank\":false,\"dataName\":\"我想要的方案\",\"id\":\"jqTextArea55100_Aclon。。。

这个是js返回的一个结果,可以看出来是一段json串。但是这个json串前面的Aclone_2dd40好像是随机的,用etree.xpath获取span只能获取一部分包含这个信息的代码。。想到了用re正则表达式。但是好像代码有点问题。

re.findall(r'"dataName":.*?"id":',html,re.DOTALL)


能帮我看看是哪里的问题么。
(PS:个人认为不是\的问题,试过貌似也没用)
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Citron__ 2017-09-25
  • 打赏
  • 举报
回复
结贴:解决方法:

     weekly=re.findall(r'dataName\\":\\"(.*?)\\",\\"id\\":',result_html,re.DOTALL)
Citron__ 2017-09-24
  • 打赏
  • 举报
回复
引用 1 楼 chuifengde 的回复:
import re 
s="""AcloneA_2dd40={\"allowBlank\":false,\"dataName\":\"我想要的方案\",\"id\":\"jqTextArea55100_Aclon。。。"""
x=re.findall(r'dataName\":\"(.*?)\",\"id\":',s,re.DOTALL)
print(x)
还是返回[]。。没有结果
chuifengde 2017-09-24
  • 打赏
  • 举报
回复
贴上你的源代码
Citron__ 2017-09-24
  • 打赏
  • 举报
回复
引用 3 楼 jxxx2967 的回复:

import re 
s="""AcloneA_2dd40={\"allowBlank\":false,\"dataName\":\"我想要的方案\",\"id\":\"jqTextArea55100_Aclon。。。"""
x=re.findall(r'dataName\":\"(.*?)\",\"id\":',s,re.DOTALL)
print(x)
['我想要的方案']
明明可以
测试下上面的代码,如果是自定义s确实是可以的。但是我的源字符是

     result_html=opener.open(request).read().decode('utf-8')
然后 x=re.findall(r'dataName\":\"(.*?)\",\"id\":',result_html,re.DOTALL) 为什么就找不到了呢。result_html里面打印出来确实包含了上面的字符串
jxxx2967 2017-09-24
  • 打赏
  • 举报
回复

import re 
s="""AcloneA_2dd40={\"allowBlank\":false,\"dataName\":\"我想要的方案\",\"id\":\"jqTextArea55100_Aclon。。。"""
x=re.findall(r'dataName\":\"(.*?)\",\"id\":',s,re.DOTALL)
print(x)
['我想要的方案']
明明可以
Citron__ 2017-09-24
  • 打赏
  • 举报
回复
这个是核心源代码:

     result_html=opener.open(request).read().decode('utf-8')
     print(result_html)
     weekly=re.findall(r'dataName\":\"(.*?)\",\"id\":',result_html,re.DOTALL)
     print(weekly)
     #root=etree.HTML(result_html)

chuifengde 2017-09-23
  • 打赏
  • 举报
回复
import re 
s="""AcloneA_2dd40={\"allowBlank\":false,\"dataName\":\"我想要的方案\",\"id\":\"jqTextArea55100_Aclon。。。"""
x=re.findall(r'dataName\":\"(.*?)\",\"id\":',s,re.DOTALL)
print(x)

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧