私はPythonの初心者で、この夏からオンとオフで独学しています。私はスクレイピーのチュートリアルを進めており、スクレイピーを理解するのに役立つ html/xml について時々読んでいます。私のプロジェクトは、http://www.gamefaqs.com/boards/916373-pcをスクレイピングするためにスクレイピーのチュートリアルを模倣することです。スレッドのタイトルとスレッドの URL のリストを取得したいのですが、簡単なはずです。
私の問題は、xpathとhtmlを理解していないことにあります。gamefaqs サイトのソース コードを表示するとき、リンクとタイトルを取得するために何を探すべきかわかりません。アンカータグを見てテキストをつかむだけだと言いたいのですが、どうすればいいのか混乱しています。
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from tutorial.items import DmozItem
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["http://www.gamefaqs.com"]
start_urls = ["http://www.gamefaqs.com/boards/916373-pc"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//a')
items = []
for site in sites:
item = DmozItem()
item['link'] = site.select('a/@href').extract()
item['desc'] = site.select('text()').extract()
items.append(item)
return items
これをgamefaqで動作するように変更したいので、このパスに何を入れますか? プログラムがこのスレッド名スレッド url のような結果を返すと思いますが、コードが正しくないことはわかっていますが、誰かがこれを書き直して結果を取得するのを手伝ってくれます。スクレイピング プロセスをよりよく理解するのに役立ちます。