Scrapy 踩坑记录

首先要吐槽的是,现在的技术网络环境真的是太单一了,感觉大家都是在复制粘贴,有了问题一搜,发现所有的答案都是一样的,连报错和项目名称都是一样的,真的是可笑啊,想我泱泱大国这么多技术人才,竟然都没有一点原创精神,稍微原创一点的都是各种培训机构,真的是无语。言归正传,本篇文章是为了记录自己的踩坑历史,方便自己记忆,也方便后面学习的人可以少走弯路。
坑一:关于start_urls

start_urls,scrapy 框架中,是会优先从start_urls中获取url 来进行爬取的,这里的start_urls 可以放置多个url,scrapy 会从这里依次取出url 来进行爬取,现在我们的这个位置是没有任何问题的。但是如果我们把start_urls 去掉,那么这个程序就不会执行,因为这个时候无法获取到url路径,但是allowed_domains 是可以去掉的。

总结:只有少数的url ,并且不需要从数据库中获取的,可以写在start_urls 中,start_urls 是必须的 ,parse名字也是固定的在这里插入图片描述

下面我们来讨论关于start_urls 的下一个问题,我们现在需要从数据库中获取大量的urls,依次进行爬取,这该怎么办呢。
在这个时候,我们需要获取大量的urls ,一般情况是从数据库中获取,为了方便看,我们在这里就使用数组来代替,这个时候我们需要重写源码中的start_requests() 这个函数,这个时候就不需要写start_urls ,而且写了也没有,scrapy框架会自己从start_Requests 这个函数中获取urls,然后回调parse 这个函数(函数名随意,爱叫什么叫什么),具体代码如下。

总结:抓取的urls需要遍历,需要复写start_requests()函数,且必须写allowed_domains
在这里插入图片描述

发布了27 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/RENYZHI/article/details/105403064