justdial.comをスクラップするためにscrapyを使用していますが、コードが機能していないようです。これを解決するのを手伝ってください。私はターミナルから "scrap crawl justdial -o items.csv -t csv"コマンドを実行します。Scrapyを使用したWebデータの掻き取り
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from justdial_sample.items import JustdialSampleItem
class MySpider(CrawlSpider):
name = "justdial"
allowed_domains = ["www.justdial.com"]
start_urls = ["https://www.justdial.com/"]
rules = (Rule (SgmlLinkExtractor(allow=("index\d00\.html",
),restrict_xpaths=('//p[@id="nextpage"]',))
, callback="parse_items", follow=True),
)
def parse(self, response):
hxs = HtmlXPathSelector(response)
titles = hxs.select("//p")
items = []
for titles in titles:
item = JdItem()
item ["title"] = titles.select("a/text()").extract()
item ["link"] = titles.select("@/href").extract()
item.append(item)
return items
これは私が使用したコードです。
私の知る限りjustdialブロック離れてGoogleからの他のスクレイパーをsettings.pyのために、この行を追加する必要があります。それは[robots.txt'](https://us.justdial.com/robots.txt)ファイルに制限されているだけでなく、IPアドレスを許可しません。あなたはscrapの中で 'USER_AGENT'文字列で遊んでみるか、scrapy splashを使って試してみることができます。 –