如何从Python网站获取某些文本?

时间:2014-04-05 12:27:25

标签: python html xpath web-scraping lxml

我正在使用python脚本从网站(http://www.opensiteexplorer.org/)获取某个文本。例如,尝试此搜索:http://www.opensiteexplorer.org/links?site=www.google.com

我想获得" Page Authority"和" Root Domains"并过滤掉它们。我正在使用lxml。

我正在使用此代码:

response = br.open( 'http://www.opensiteexplorer.org/links?site=' + blog)
tree = html.fromstring(response.read())
authority = int (tree.xpath('//span[@class="metrics-authority"]/text()')[1].strip())
if authority>1:
    print blog
    print 'This blog is ready to be registered'
    print authority
    f.write(blog +' '+ str(authority) +'\n')

这里我正在过滤大于1的PA,我还希望过滤大于5的链接根域。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以使用metrics-authority课程获得所有2个跨度,第一个是Domain Authority,第二个是Page Authority。此外,您可以Root Domains使用div获取id="metrics-page-link-metrics"

import urllib2
from lxml import html

tree = html.parse(urllib2.urlopen('http://www.opensiteexplorer.org/links?site=www.google.com'))

spans = tree.xpath('//span[@class="metrics-authority"]')
data = [item.text.strip() for item in spans]
print "Domain Authority: {0}, Page Authority: {1}".format(*data)

div = tree.xpath('//div[@id="metrics-page-link-metrics"]//div[@class="has-tooltip"]')[1]
print "Root Domains: {0}".format(div.text.strip())

打印:

Domain Authority: 100, Page Authority: 97 
Root Domains: 680

希望有所帮助。