未分类

一次失败的爬虫程序

前几天在编制一个新闻展示程序的时候,突发奇想的想把那个新闻网站的内容爬到本地,于是就开始动手,通过scrapy来完成这项工作。

源端网站是一个json格式返回的信息,按照道理说非常简单,只需要通过类似如下的代码就可以逐项解析,并保存到数据了

1
2
3
4
5
6
7
8
9
10
11
class Cm163Spider(scrapy.Spider):
name = 'cm163'
allowed_domains = ['http://c.3g.163.com']
start_urls = ['http://c.3g.163.com/nc/article/headline/T1348647853363/0-140.html/']

def parse(self, response):
# 调用body_as_unicode()是为了能处理unicode编码的数据
news163 = json.loads(response.body_as_unicode())
#print sites['k']
n_title = news163['title'].split(',')
print(n_title)

实际运行的时候服务器先是返回403,这个好办,直接在settings.py里面设置head就好,设置完成后403错误没有了,但是出现了202错误,通过在网上查了一下,大致是如下图所示的情况:

001

继续去查,找到了一些解决的方法,不过目前暂时都没有成功,看样子只有考虑用代理IP的方式解决吗?还在努力尝试中。最后附上几个我找到的资料网址,感谢这些作者:

https://blog.csdn.net/qq_34162294/article/details/72353406

https://chenjiabing666.github.io/2017/03/25/scrapy%E7%9A%84%E4%B8%8B%E8%BD%BD%E5%99%A8%E4%B8%AD%E9%97%B4%E4%BB%B6/

https://chenjiabing666.github.io/2017/03/26/scrapy%E8%AE%BE%E7%BD%AE%E4%BB%A3%E7%90%86ip/

https://blog.csdn.net/sixkery/article/details/82726177

https://blog.csdn.net/sixkery/article/details/82724591

分享到