【发布时间】:2017-03-08 19:33:17
【问题描述】:
这是我previous quesion的跟进
我安装了splash和scrapy-splash。
并且还关注了instructions 的scrapy-splash。
我编辑我的代码如下:
import scrapy
from scrapy_splash import SplashRequest
class CityDataSpider(scrapy.Spider):
name = "citydata"
def start_requests(self):
urls = [
'http://www.city-data.com/advanced/search.php#body?fips=0&csize=a&sc=2&sd=0&states=ALL&near=&nam_crit1=6914&b6914=MIN&e6914=MAX&i6914=1&nam_crit2=6819&b6819=15500&e6819=MAX&i6819=1&ps=20&p=0',
'http://www.city-data.com/advanced/search.php#body?fips=0&csize=a&sc=2&sd=0&states=ALL&near=&nam_crit1=6914&b6914=MIN&e6914=MAX&i6914=1&nam_crit2=6819&b6819=15500&e6819=MAX&i6819=1&ps=20&p=1',
]
for url in urls:
yield SplashRequest(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'citydata-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
self.log('Saved file %s' % filename)
但我仍然得到相同的输出。只生成一个html文件,结果只针对http://www.city-data.com/advanced/search.php
代码中是否有任何错误或任何其他建议。
【问题讨论】:
-
使用按钮
{}正确格式化代码。你收到错误信息吗?显示有问题。 -
对我来说,你读了两页,但你把两页都写在同一个文件中——看看你是如何生成文件名的。
-
可能会删除两个网址中的
#body。它只是页面代码中的内部位置,因此某些系统期望在 url 末尾出现#,并且它们会删除#之后的所有内容 -
@furas 即使我从网址中删除了 # 正文,我仍然无法在输出中找到任何更改。还有其他建议吗?
标签: javascript python python-2.7 scrapy scrapy-spider