はい、これは Scrapy で絶対に可能です。サイトをスクレイピングするのではなく、知っている URL のリストを開くだけなら、Scrapy はやり過ぎだと思います。
HTML の解析にはlxmlをお勧めします。これはシンプルで、BeautifulSoup よりもかなり高速です (2 桁もかかる可能性があります)。HTTPのリクエストは非常にシンプルです。
以下のスニペットでは、XPath クエリを使用して正しい定義記述要素を見つけています。//dl[dt/text()='term']//dd/text()
本質的には、「「用語」のテキストコンテンツを持つ定義用語を持つ定義リスト(dl)要素を//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:")