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

Enter string into search field with Scrapy Spider; loading the generated URL

使用 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 

虽然运行它没有做任何事情,但表单请求主要用于填写登录字段吗?到达 THIS 页面的最佳方式是什么? (这是在搜索 zip 27517 之后出现的,这是我开始用 scrapy spider 抓取我想要的信息的地方)

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

你需要一些调试控制台(我更喜欢 Firefox Firebug)来检查正在完成哪些请求,看起来它是一个 GET 请求并且很容易复制,url会像 this where you'll have to change the number after /fullcrit/ to the desired zip code, but you also need the lat and lng arguments, for that you could use the Google Maps API, check this answer for an example on how to get it, but to summarise just do this Request 并得到 location 参数。