抓取数据 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