抓取数据 python lxml
Scraping data python lxml
我正在尝试通过抓取来检索特定的字符串。不过好像return没什么。我正在使用 python 和 lxml,但似乎没有 return a 标签内的字符串。
这是我要检索的html
<fieldset>
<legend align="center">
<a href="/counterstrike/events/302-cs-go-champions-league">CS:GO Champions League</a>
</legend>
</fieldset>
这是我试过的方法
def get_league(self):
request = requests.get(self.url)
tree = html.fromstring(request.content)
league = tree.xpath("//legend[@class='center']//a")
return league
试试这个,它不是 lxml,但您可以将它用于抓取目的。
首先我要定义我自己制作的函数,然后它会更容易抓取
def getBetweenHTML(strSource, strStart,strEnd):
start = strSource.find(strStart) + len(strStart)
end = strSource.find(strEnd,start)
return strSource[start:end]
之后,我要这样做:
def get_league(self):
import urllib2
url = urllib2.urlopen(self.url).read()
getBetweenHTML(url, '<a href="/counterstrike/events/302-cs-go-champions-league">',"</a>")
这对我有用,它只是一个替代方案。如果这不是您想要的,请告诉我,我会为 lxml 重写它。
使用 xpath 显式 select 文本
//legend[@align='center']/a/text()
这个 chrome 的插件在编写 lxml 查询时很有帮助
Xpath Helper
我正在尝试通过抓取来检索特定的字符串。不过好像return没什么。我正在使用 python 和 lxml,但似乎没有 return a 标签内的字符串。
这是我要检索的html
<fieldset>
<legend align="center">
<a href="/counterstrike/events/302-cs-go-champions-league">CS:GO Champions League</a>
</legend>
</fieldset>
这是我试过的方法
def get_league(self):
request = requests.get(self.url)
tree = html.fromstring(request.content)
league = tree.xpath("//legend[@class='center']//a")
return league
试试这个,它不是 lxml,但您可以将它用于抓取目的。 首先我要定义我自己制作的函数,然后它会更容易抓取
def getBetweenHTML(strSource, strStart,strEnd):
start = strSource.find(strStart) + len(strStart)
end = strSource.find(strEnd,start)
return strSource[start:end]
之后,我要这样做:
def get_league(self):
import urllib2
url = urllib2.urlopen(self.url).read()
getBetweenHTML(url, '<a href="/counterstrike/events/302-cs-go-champions-league">',"</a>")
这对我有用,它只是一个替代方案。如果这不是您想要的,请告诉我,我会为 lxml 重写它。
使用 xpath 显式 select 文本
//legend[@align='center']/a/text()
这个 chrome 的插件在编写 lxml 查询时很有帮助 Xpath Helper