Python网页抓取

Python网页抓取,python,Python,在python中使用此正则表达式时: pathstring='(.*) pathFinderTitle=re.compile(路径字符串) 我的输出是: Govt has nothing to do with former CAG official RP Singh: Sibal</span></a></h2></div><div class="esc-lead-article-source-wrapper"> <table cl

在python中使用此正则表达式时:

pathstring='(.*)

pathFinderTitle=re.compile(路径字符串)

我的输出是:

Govt has nothing to do with former CAG official RP Singh:
Sibal</span></a></h2></div><div class="esc-lead-article-source-wrapper">
<table class="al-attribution single-line-height" cellspacing="0" cellpadding="0">
<tbody><tr><td class="al-attribution-cell source-cell">
<span class='al-attribution-source'>Times of India</span></td>
<td class="al-attribution-cell timestamp-cell">
<span class='dash-separator'>&nbsp;- </span>
<span class='al-attribution-timestamp'>&lrm;46 minutes ago&lrm;
政府与前CAG官员RP Singh无关:
西巴尔
印度时报
- 
&lrm;46分钟前&lrm;
文本查找应该首先停止“”

请指出此处的错误。

*
是任何字符的贪婪匹配;它将消耗尽可能多的字符。相反,请使用非贪婪版本
*?
,如中所示

pathstring = '<span class="titletext">(.*?)</span>'
pathstring='(*?)
*
是任何字符的贪婪匹配;它将消耗尽可能多的字符。相反,请使用非贪婪版本
*?
,如中所示

pathstring = '<span class="titletext">(.*?)</span>'
pathstring='(*?)
我建议使用正则表达式,而不是对正则表达式发疯。。。它基于lxml,使HTML解析与使用jQuery一样简单

像这样的东西就是你所需要的一切:

doc = PyQuery(html)
doc('span.titletext').text()
您也可以使用,但结果总是一样的:不要使用正则表达式来解析HTML,有一些工具可以让您的生活更轻松。

我建议使用正则表达式,而不是疯狂使用正则表达式。。。它基于lxml,使HTML解析与使用jQuery一样简单

像这样的东西就是你所需要的一切:

doc = PyQuery(html)
doc('span.titletext').text()

您也可以使用,但结果总是一样的:不要使用正则表达式解析HTML,有一些工具可以让您的生活更轻松。

*
将匹配
,因此它将一直持续到最后一个

最好的答案是:不要用正则表达式解析html。使用库(或类似的东西)

从lxml导入html
html_字符串=“”
tree=html.fromstring(html\u字符串)
titles=tree.xpath(//span[@class='titletext']))
标题中的标题:
打印title.text

使用适当的xml/html解析器将为您节省大量的时间和麻烦。如果您使用自己的解析器,您将不得不处理格式错误的标记、注释和无数其他内容。不要重新发明轮子。

*
将匹配
,因此它将一直持续到最后一个轮子

最好的答案是:不要用正则表达式解析html。使用库(或类似的东西)

从lxml导入html
html_字符串=“”
tree=html.fromstring(html\u字符串)
titles=tree.xpath(//span[@class='titletext']))
标题中的标题:
打印title.text

使用适当的xml/html解析器将为您节省大量的时间和麻烦。如果您使用自己的解析器,您将不得不处理格式错误的标记、注释和无数其他内容。不要重新发明轮子。

你也可以很容易地使用它,这对做这类事情很有好处

#using BeautifulSoup4, install by "pip install BeautifulSoup4"
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
result = soup.find('span', 'titletext')

然后,
result
将使用class
titletext
保存您正在查找的

您也可以轻松地使用它,这对于做此类事情非常有用

#using BeautifulSoup4, install by "pip install BeautifulSoup4"
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
result = soup.find('span', 'titletext')

然后,
result
会将
与class
titletext
一起保存在您正在查找的位置。

+1用于回答问题,而不是告诉他不要使用正则表达式。此问题的标题为“Python网页抓取”-因此有一个隐含的问题“我如何进行网页抓取?”。正则表达式不是答案+1为了回答问题而不是告诉他不要使用常规表达式,他的问题名为“Python web scraping”-因此有一个隐含的问题“我如何做web scraping?”。正则表达式不是答案。