是的,這是絕對有可能與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