是的,这是绝对有可能与Scrapy。如果你只是打开你知道的网址列表而不是抓取网站,那么我会说Scrapy太过分了。
我会推荐用于HTML解析的lxml,它比BeautifulSoup简单并且快得多(可以达到两个数量级)。而HTTP的requests因为它非常简单。
在下面的代码片段中,我使用XPath查询来查找正确的定义描述元素。 //dl[dt/text()='term']//dd/text()
实质上是在说:“找到定义项的定义列表(dl)元素,其中包含文本内容'term'(//dl[dt/text()='term']
),然后查找所有定义描述(dd)元素并获取其文本内容(//dd/text()
)”。
from StringIO import StringIO
import requests
from lxml import etree
response = requests.get("http://www.tripadvisor.in/members/SomersetKeithers")
parser = etree.HTMLParser()
tree = etree.parse(StringIO(response.text), parser)
def get_definition_description(tree, term):
description = tree.xpath("//dl[dt/text()='%s']//dd/text()" % term)
if len(description):
return description[0].strip()
print get_definition_description(tree, "Age:")
print get_definition_description(tree, "Gender:")
print get_definition_description(tree, "Location:")
采取联合看看机械化(http://wwwsearch.sourceforge.net/mechanize/)与beautifulsoup(http://www.crummy.com/software/BeautifulSoup/)。可能是scrapy的替代品 – dvcrn
这是可以使用scrapy。查看这里的文档http://doc.scrapy.org/en/latest/intro/overview.html – Ifthikhan
机械化和scrapy都有相当直接的教程。如果您遇到困难,请尝试先完成这些工作并发布问题。 – Talvalin