使用Scrapy编写爬虫程序中遇到的问题及解决方案记录
1、创建与域名不一致的Request时,请求会报错
解决方法:创建时Request时加上参数dont_filter=True
2、当遇到爬取失败(对方反爬检测或网络问题等)时,重试,做法为在解析response时判断response特征,失败时yield Request(response.url),但是重试并没有发出去请求。
解决方法:原因时Scrapy的机制对于已经发送过的同url的request并不会再次发送,所以需要在构造Request加上参数dont_filter=True
3、解析到数据再pipelines中入库时,由于部分字段按预设的规则可能爬取不到,这时插库的sql会报错
解决方法:如果挨个字段判断的话太冗长了,所以这里选择用异常捕获的方式,放弃这部分数据而让爬虫顺利的执行下去
4、在爬取商品列表数据时,正则findall的方式,当其中某个商品假设其缺少了comment字段,在入库时就会导致顺序对应错乱
解决方法:使用Json解析的方法应该可以处理这个问题,但是用于Json解析效率太低,所以这里没处理
dont_filter=True
使用Scrapy编写爬虫程序中遇到的问题及解决方案记录的更多相关文章
- Scrapy框架-爬虫程序相关属性和方法汇总
一.爬虫项目类相关属性 name:爬虫任务的名称 allowed_domains:允许访问的网站 start_urls: 如果没有指定url,就从该列表中读取url来生成第一个请求 custom_se ...
- 编写爬虫程序的神器 - Groovy + Jsoup + Sublime
写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET BCL只提供了"底层"的HttpWebRequest和"中层& ...
- 编写爬虫程序的神器 - Groovy + Jsoup + Sublime(转)
写过很多个爬虫小程序了,之前几次主要用C# + Html Agility Pack来完成工作.由于.NET FCL只提供了"底层"的HttpWebRequest和"中层& ...
- 关于编写Windows程序中启动兼容性问题
之前用qt4编写Windows程序的时候遇到了一个软件在系统的兼容性问题:用户在win10系统下使用这个程序的时候,如果没有用低于win10版本的兼容模式运行的时候,存在运行某部分功能的时候无法使用的 ...
- 内核开发知识第二讲,编写Kerner 程序中注意的问题.
一丶函数多线程的安全问题 什么是函数多线程安全. 简单来说就是 ,一个函数在调用过程中.还没有返回的时候.再次被其他线程调用了.但是函数执行的结果是可靠的.就可以了说这个函数是安全的. 比如我们在用户 ...
- java 编写hadoop程序中使用第三方libxx.so库
在使用java编写hadoop处理程序时遇到了,java使用依赖的第三方libxx.so库的情况,找到了一种可行的方法,记录一下,希望对别人也有帮助: 加入需要使用的lib库为libxxx.so 1. ...
- python基础学习1-网络爬虫程序中的代理IP设置
#!/usr/bin/env python # -*- coding:utf-8 -*-网络爬虫代理 import urllib.request import random url="htt ...
- scrapy编写爬虫的时候出现缺少win32api
环境:python3.6 工具:pycharm2017.3 scrapy fetch http://www.baidu.com ModuleNotFoundError: No module named ...
- php爬虫程序中怎么样伪造ip地址防止被封
今天我们来做一个简单的假的ip地址访问网站,这个可以利用php curl或fsockopen来实现,有需要的同学可以参考一下方案很简单的,不过此方案不完美对第三方工具没有用. HTTP-REFERER ...
随机推荐
- 数据库基础02-MYSQL的事务
Mysql的事务 1.基本概念 事务本质是一组SQL操作,事务中的语句要么全部执行成功,或者全部执行失败. 2.如何保证一个事务:四个特性(ACID) 原子性 (Automic) ...
- finally 关键字
异常处理的时侯 出现的关键字finally 不论在 try 代码块中是否出现 发生了异常时间, catch语句是否执行,catch语句是否有异常,catch语句中是否return关键字 ,f ...
- SCOI 2010 连续攻击游戏(贪心,图论)
SCOI 2010 连续攻击游戏 solution 直接就硬刚 我愿称贪心为暴力 因为题目中要求一定从小到大贪心,那么当前点的下标有能够选取的较大点,那么它一定可以和前面的一个较小点连接,所以可以直接 ...
- 解决安装mysql 提示msvcr100.dill 丢失,的最快方法
我也是在学习mysql的时候遇到的这个问题,很多人也遇到了,于是在百度找解决方案 看到有人论坛中写道,用 360安全卫士,可以修复于是我下载了360安全卫士尝试修复, 在人工解答中搜索dll修复,也修 ...
- Linux终端音乐播放器cmus攻略: 操作歌单
目录 1. 安装 2. 操作说明 2.1. *PlayList歌单 2.2. 其他 3. 视图切换 4. 使响应Media/play按键 4.1. 编译安装 cmus是一款开源的终端音乐播放器.它小巧 ...
- 分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架
集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 htt ...
- Python——格式化GMT时间
1.背景 最近在做视频上传去获取大小.时间的功能,视频是存在金山云的,由于金山sdk接口用例执行后返回的结果中的时间是http头部时间,时间格式为‘Tue, 08 May 2018 06:17:00 ...
- linux环境下安装 openOffice4并启动服务
一.背景故事 openOffice是用来做office文档在线预览功能,把office文档转换成pdf交给前端显示. 之前系统开发过程一直没有将springboot服务怼上服务器,所以只安装了wind ...
- python读取EXCEL是去掉空白行和表头全部重命名
当读取进来的表格如图所示,转换成图2. import pandas as pd # header:指定作为列名的行,默认0,即取第一行的值为列名.数据为列名行以下的数据:若数据不含列名, # 则设定 ...
- day73 bbs项目☞基本功能实现
目录 一.登录功能 二.首页搭建 三.admin后台管理 四.图片防盗链 五.个人站点展示 一.登录功能 views.py 0难度,都是基本操作,要熟悉auth模块的使用 # 登录功能 def log ...