0
私は過去2日間この問題に苦労しています。私はthisのウェブサイトからすべての "幹部"またはカテゴリのデータを削り取る必要があります。残念ながら、このウェブサイトでは、「すべてのカテゴリ」オプションを持たないドロップダウンメニュー「選択幹部」を介してこのデータにアクセスすることができます。これを回避するために、私はScrapyのFormRequest.from_responseメソッドを使用していますが、スパイダーはデータがない空のファイルを返しています。どんな助けもありがとうございます。ここでは、コードがあります:私はあなたのコードを実行するとScrapyのFormRequest.from_responseメソッドを使用すると、ドロップダウンメニューの賢明なデータのスクレイピングが自動化されます
import scrapy
class IASWinnerSpider(scrapy.Spider):
name = 'iaswinner_list'
allowed_domains = ['http://civillist.ias.nic.in']
def start_requests(self):
urls = [ 'http://civillist.ias.nic.in/UpdateCL/DraftCL.asp' ]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
return scrapy.FormRequest.from_response(response, method='POST',
formdata={'cboCadre': 'UT'}, dont_click=True, callback=self.after_post)
def after_post(self, response):
table = response.xpath('/html/body/div/table//tr')
for t in table:
yield {
'serial': t.xpath('td[1]/text()').extract(),
'name': t.xpath('td[2]/text()').extract(),
'qual': t.xpath('td[3]/text()').extract(),
'dob': t.xpath('td[4]/text()').extract(),
'post': t.xpath('td[5]/text()').extract(),
'rem': t.xpath('td[6]/text()').extract(),
}
与えられたコードはまだ完全ではありません(cf. [mcve]参照)。この問題を示す '__main__'セクションを追加することをお勧めします。 – ederag
リンハートの答えがあなたの必要とするものなら、それを「受け入れる」ことを忘れないでください。 –
はい、完了しました。ありがとう。 –