【发布时间】:2017-06-14 08:10:38
【问题描述】:
我写了这个很短的蜘蛛来访问美国新闻链接并获取那里列出的大学的名称。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import scrapy
class CollegesSpider(scrapy.Spider):
name = "colleges"
start_urls = [
'http://colleges.usnews.rankingsandreviews.com/best-colleges/rankings/national-universities?_mode=list&acceptance-rate-max=20'
]
def parse(self, response):
for school in response.css('div.items'):
yield {
'name': school.xpath('//*[@id="view-1c4ddd8a-8b04-4c93-8b68-9b7b4e5d8969"]/div/div[1]/div[1]/h3/a').extract_first(),
}
但是,当我运行此蜘蛛并要求将名称存储在名为 school.json 的文件中时,该文件显示为空白。我做错了什么?
【问题讨论】:
-
您是否看到终端/CLI 中产生的项目?
-
@Umair 你是什么意思?我的终端输出没有显示错误。
-
@Umair 我确实得到了这个,尽管“HTTP 状态代码未处理或不允许”
-
@ch1maera 是的,我复制了它。我的直觉是自动停止机器人。你需要在一些听者中编码并伪装成浏览器
-
@Bobby 所以基本上是这样的:stackoverflow.com/questions/18920930/… ?
标签: python json web-scraping scrapy scrapy-spider