1. 爬虫出现 Forbidden by robots.txt https://blog.csdn.net/zzk1995/article/details/51628205
解决方法: setting.py ROBOTSTXT_OBEY = True 改成 False
原因: scrapy 抓包时的输出就能发现, 在请求我们设定的 url 之前, 它会先向服务器根目录请求一个 txt 文件
这个文件中规定了本站点允许的爬虫机器爬取的范围 (比如你不想让百度爬取你的页面, 就可以通过 robot 来限制), 因为默认 scrapy 遵守 robot 协议, 所以会先请求这个文件查看自己的权限, 而我们现在访问这个 url 得到
1 User-agent: * 2 Disallow: /
在 setting 改变 ROBOTSTXT_OBEY 为 False, 让 scrapy 不要遵守 robot 协议, 之后就能正常爬取
对于使用 robot 协议的站点, 只需要我们的爬虫不遵守该协议, 就可以了, 但是对于防止爬虫爬取, 站点还有检查请求头, 检查 ip 等等手段, 还需要其他的相应处理.
2. 如何进一步获取数据并同时保存
解决方法: 参考文章 --scrapy 爬取新浪网导航页所有大类, 小类, 小类里的子链接, 以及子链接页面的新闻内容 https://blog.csdn.net/z564359805/article/details/80886382
3. ajax 请求
解决方法: post 请求
可以使用
yield scrapy.FormRequest(url, formdata, callback)
方法发送 POST 请求
注意!!!
formdata 的 参数值 必须是 unicode , str 或者 bytes object, 不能是整数.
4. 自动创建 create_time
解决方法: 将 create_time 字段设置为 timestamp 并设置默认值 CURRENT_TIMESTAMP
5. mysql 让清空表且自增的 id 重新从 1 开始
解决方法: truncate table table_name
来源: https://www.cnblogs.com/littlebob/p/9462587.html