Python 抓取网页后解析

Citron__ 2017-09-15 08:23:13
使用python抓取网页后,想要解析这个网页。

<td class="">1</td>
<td class="">v2.4.2.15</td>
<td class>


v2.4.2.15代表版本,想通过re.findall(r"<td class="">1</td>\n<td class="">v2.4.2.15</td>\n<td class>",html,re.S)
来获取这个版本,但是一直返回的是[],想问问这是什么情况,是因为还有空格没有匹配么?但是并不知道空格有多少个。
想过用html.replace(' ','') 来清除所有空格后在匹配。但是好像并没有什么效果。(csdn没有python板块??)
...全文
225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Citron__ 2017-09-18
  • 打赏
  • 举报
回复
引用 2 楼 chuifengde 的回复:
import re 

x="""<td class="">1</td>
<td class="">v2.4.2.15</td>
<td class>
"""
y=re.findall(r'(?<=">)([^1-9][1-9].*?)</td>',x,re.DOTALL)
print(y)
感谢回答,不过这个只是网页的一部分,下面还有v1.2.3.4等等,所以只想要获取上面那个<td class="">1</td>
混沌鳄鱼 2017-09-18
  • 打赏
  • 举报
回复
比较省事儿的办法就是直接用解析HTML的包,lxml, bs4什么的挺多的。 简单举个栗子


import lxml.etree

html_text ="""
<td class="">1</td>
<td class="">v2.4.2.15</td>
<td class>
"""

page = lxml.etree.HTML(html_text)

tds = page.xpath("//td")
for td in tds:
    print(td.text)

1
v2.4.2.15
张强1990 2017-09-18
  • 打赏
  • 举报
回复
for i in root.xpath("//td[@class='']/text()"):
    print(i)
    
1
v2.4.2.15
cjws555 2017-09-18
  • 打赏
  • 举报
回复
引用 2楼chuifengde 的回复:
import re 

x="""<td class="">1</td>
<td class="">v2.4.2.15</td>
<td class>
"""
y=re.findall(r'(?<=">)([^1-9][1-9].*?)</td>',x,re.DOTALL)
print(y)
不错受教了23333
cjws555 2017-09-18
  • 打赏
  • 举报
回复
看看哈哈哈23333
chuifengde 2017-09-17
  • 打赏
  • 举报
回复
import re 

x="""<td class="">1</td>
<td class="">v2.4.2.15</td>
<td class>
"""
y=re.findall(r'(?<=">)([^1-9][1-9].*?)</td>',x,re.DOTALL)
print(y)
xuzuning 2017-09-16
  • 打赏
  • 举报
回复

37,720

社区成员

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

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