使用Scrapy Spider在搜索字段中输入字符串;加载生成的URL

时间:2016-05-20 22:53:33

标签: scrapy web-crawler search-box

使用Scrapy Spider在本网站的输入框中自动输入邮政编码值“27517”的正确方法:Locations of Junkyards是否可以使用表格申请? 这就是我现在所拥有的:

import scrapy
from scrapy.http import FormRequest
from scrapy.item import Item, Field
from scrapy.http import FormRequest
from scrapy.spider import BaseSpider

class LkqSpider(scrapy.Spider):
name = "lkq" 
allowed_domains = ["http://www.lkqcorp.com/en-us/locationResults/"]
start_urls = ['http://www.lkqcorp.com/en-us/locationResults/']

def start_requests(self):
return [ FormRequest("http://www.lkqcorp.com/en-us/locationResults/",
             formdata={'dnnVariable':'27517'},
             callback=self.parse) ]

def parsel(self):
print self.status 

运行时它什么都不做,Form Request主要用于完成登录字段?到达THIS页面的最佳方式是什么? (在搜索zip 27517之后出现,我会开始用scrapy蜘蛛抓取我想要的信息)

1 个答案:

答案 0 :(得分:1)

这不是FormRequest,因为FormRequests只是scrapy中POST请求的名称,当然它可以帮助您填写表单,但表单通常也是POST请求。

你需要一些调试控制台(我更喜欢Firebug for Firefox)来检查哪些请求正在完成,看起来它是一个GET请求并且复制起来很简单,url就像this那里您必须将/fullcrit/后的号码更改为所需的邮政编码,但您还需要latlng个参数,因为您可以使用Google Maps API,请检查{ {3}}有关如何获取它的示例,但总结只需执行this answer并获取location参数。