python爬虫中采集中遇到的问题整理


Posted in Python onNovember 27, 2020

在爬虫的获取数据上,一直在讲一些爬取的方法,想必小伙伴们也学习了不少。在学习的过程中遇到了问题,大家也会一起交流解决,找出不懂和出错的地方。今天小编想就爬虫采集数据时遇到的问题进行一个整理,以及在遇到不同的问题时,我们应该想的是什么样的解决思路,具体内容如下分享给大家。

1、需要带着cookie信息访问

比如大多数的社交化软件,基本上都是需要用户登录之后,才能看到有价值的东西,其实很简单,我们可以使用Python提供的cookielib模块,实现每次访问都带着源网站给的cookie信息去访问,这样只要我们成功模拟了登录,爬虫处于登录状态,那么我们就可以采集到登录用户看到的一切信息了。下面是使用cookie对httpRequest()方法的修改:

ckjar = cookielib.MozillaCookieJar()
cookies = urllib2.HTTPCookieProcessor(ckjar)   #定义cookies对象
def httpRequest(url):
 '''''
 @summary: 网络请求
 '''
 try:
  ret = None
  SockFile = None
  request = urllib2.Request(url)
  request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)')
  request.add_header('Pragma', 'no-cache')
  opener = urllib2.build_opener(cookies)  #传递cookies对象
  SockFile = opener.open(request)
  ret = SockFile.read()
 finally:
  if SockFile:
   SockFile.close()
 return ret

2、编码问题

网站目前最多的两种编码:utf-8,或者gbk,当我们采集回来源网站编码和我们数据库存储的编码不一致时,比如http://163.com的编码使用的是gbk,而我们需要存储的是utf-8编码的数据,那么我们可以使用Python中提供的encode()和decode()方法进行转换,比如:

content = content.decode('gbk', 'ignore')  #将gbk编码转为unicode编码

content = content.encode('utf-8', 'ignore') #将unicode编码转为utf-8编码

到此这篇关于python爬虫中采集中遇到的问题整理的文章就介绍到这了,更多相关python爬虫入门之采集中遇到的问题内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python判断操作系统类型代码分享
Nov 22 Python
Python自动生产表情包
Mar 17 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
python unittest实现api自动化测试
Apr 04 Python
java中两个byte数组实现合并的示例
May 09 Python
Python 字符串与数字输出方法
Jul 16 Python
python中类的属性和方法介绍
Nov 27 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
django项目中新增app的2种实现方法
Apr 01 Python
Python安装Bs4的多种方法
Nov 28 Python
python中Mako库实例用法
Dec 31 Python
Golang Web 框架Iris安装部署
Aug 14 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 #Python
Python函数调用追踪实现代码
Nov 27 #Python
Numpy中np.max的用法及np.maximum区别
Nov 27 #Python
python 实现aes256加密
Nov 27 #Python
pandas使用函数批量处理数据(map、apply、applymap)
Nov 27 #Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 #Python
Python基于template实现字符串替换
Nov 27 #Python
You might like
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
apache配置虚拟主机的方法详解
2013/06/17 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
jQuery的一些注意
2006/12/06 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
收集的10个免费的jQuery相册
2011/02/26 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
浅析node.js中close事件
2014/11/26 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
js实现消息滚动效果
2017/01/18 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
Python科学计算之NumPy入门教程
2017/01/15 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
拾金不昧表扬信范文
2014/01/11 职场文书
三年级数学教学反思
2014/01/31 职场文书
葬礼司仪主持词
2014/03/31 职场文书
心得体会的写法
2014/09/05 职场文书
nginx.conf配置文件结构小结
2022/04/08 Servers