私はこれを達成したいプロジェクトに合わせてチュートリアルを進めてきました。私は何かが間違っているように見えるので、私はエラーを見つけることができません。// tdのテキストと数字を抽出するアドバイス
私が期待しているレスポンスを得るには、 'scrap shell'を使用してください。だからこのサイトのためNrl Ladder
In [1]: hxs.select('//td').extract()
Out[1]:
[u'<td>\r\n<div id="ls-nav">\r\n<ul><li><a href="http://www.nrlstats.com/"><span>Home</span></a></li>\r\n<li class="ls-nav-on"><a href="/nrl"><span>NRL</span></a></li>\r\n<li><a href="/nyc"><span>NYC</span></a></li>\r\n<li><a href="/rep"><span>Rep Matches</span></a></li>\r\n\r\n</ul></div>\r\n</td>',
u'<td style="text-align:left" colspan="5">Round 4</td>',
u'<td colspan="5">Updated: 26/3/2012</td>',
u'<td style="text-align:left">1. Melbourne</td>',
u'<td>4</td>',
u'<td>4</td>',
u'<td>0</td>',
u'<td>0</td>',
u'<td>0</td>',
u'<td>122</td>',
u'<td>39</td>',
u'<td>83</td>',
u'<td>8</td>',
u'<td style="text-align:left">2. Canterbury-Bankstown</td>',
そしてそれに行く。
チュートリアルプロジェクトを変更して別のデータ型に変更する方法を理解するのは本当に苦労しています。
「td」やその他のアイテムを使用しているときに、アイテムに使用する必要があるタイプを確認するためのヘルプやドキュメントのリストがありますか。私はそれがシェルで簡単に動作すると言うように、私はファイルに変換することはできません。具体的には、チーム名とポイントの両方が「td」ですが、チーム名はテキストです。
ここに私が行ったことがあります。
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from nrl.items import NrlItem
class nrl(BaseSpider):
name = "nrl"
allowed_domains = ["http://live.nrlstats.com/"]
start_urls = [
"http://live.nrlstats.com/nrl/ladder.html",
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//td')
items = []
for site in sites:
item = nrlItem()
item['team'] = site.select('/text()').extract()
item['points'] = site.select('/').extract()
items.append(item)
return items
あなたはBeautifulSoupを試みたことがありますか?これはもう少し手作業ですが、あなたはそのような方法でもう少しコントロールを得ることができるかもしれません。 –
いいえ、まだ動作しないかもしれません。 – sayth
@PreetKukretiそれはscrapyもbeautifulsoupを使うことができることが分かりましたhttp://doc.scrapy.org/en/latest/topics/spiders.html – sayth