Python爬虫编程常见问题解决方法
Python爬虫编程常见问题解决方法:
1.通用的解决方案:
【按住Ctrl键不送松】,同时用鼠标点击【方法名】,查看文档
2.TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.
问题描述:【类型错误】就是数据的类型应该是bytes类型,而不是str类型
解决方案:
data = data.encode('utf-8')
3.爬取得到的HTML在一行显示
调试步骤:通过print(type(html))查看html的类型, 可以查出是bytes类型,就需要解码
解决方案:
html = html.decode()
4.有时候使用爬虫会被网站封了IP,所以需要去模拟浏览器
解决方案:
header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}
req = request.Request(url=base_url,data=bytes(data,encoding='utf-8'),headers=header)
5.当服务器返回json格式的数据乱码
调试步骤:
1.通过print(type(json_data))查看数据的类型,
2.可以查出是str类型,就是说返回的字符串中有bytes类型的数据
解决方案:把json字符串转换为字典
json_data = json.loads(json_data)
6.怎么只输出json数据的value或者某个key对应的value,不要[{}]
问题描述: 想要jsonkey/value的一部分
典型案例:
例如:
json_data=
{'errno': 0,
'data': [{'k': 'good',
'v': 'adj. 好的;'
},
{'k': 'good morning',
'v': 'int. 早安;'
}
]
}
要求: 只想要输出good: adj. 好的,而不要其他的格式
1.可以通过json_data['data'],只输出json数据json_data中‘data’对应的值,也就是
[{'k': 'good',
'v': 'adj. 好的;'
},
{'k': 'good morning',
'v': 'int. 早安;'
}
]
2.遍历输出每个'k'和'v'的值
# 遍历输出每个'k'和'v'的值
for item in json_data['data']:
print(item['k'], ": ", item['v'])
7.返回的页面是一个链接,而不是链接的页面
问题描述: 百度搜索,我们输入搜索内容,返回的是一个包括原地址链接的html,而不是访问该链接 的html,且返回的html中:location.replace(location.href.replace("https://","http://"));
问题实例截图:
解决方案: 如果使用的是http改成https,
如果使用的是https改成http,就可以了
我的爬虫笔记
- Python爬虫教程-01-爬虫介绍
- Python爬虫教程-02-使用urlopen
- Python爬虫教程-03-使用 chardet 检测编码
- Python爬虫教程-04-response简介
- Python爬虫教程-05-python爬虫实现百度翻译
- Python爬虫教程-06-爬虫实现百度翻译(requests)
- Python爬虫教程-07-post介绍(百度翻译)(上)
- Python爬虫教程-08-post介绍(百度翻译)(下)
- Python爬虫教程-09-error 模块
- Python爬虫教程-10-UserAgent和常见浏览器UA值
- Python爬虫教程-11-proxy代理IP,隐藏地址(猫眼电影)
- Python爬虫教程-12-爬虫使用cookie爬取登录后的页面(人人网)(上)
- Python爬虫教程-13-爬虫使用cookie爬取登录后的页面(人人网)(下)
- Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)
- Python爬虫教程-15-读取cookie(人人网)和SSL(12306官网)
- Python爬虫教程-16-破解js加密实例(有道在线翻译)
- Python爬虫教程-17-ajax爬取实例(豆瓣电影)
- Python爬虫教程-18-页面解析和数据提取
- Python爬虫教程-19-数据提取-正则表达式(re)
- Python爬虫教程-20-xml简介
- Python爬虫教程-21-xpath
- Python爬虫教程-22-lxml-etree和xpath配合使用
- Python爬虫教程-23-数据提取-BeautifulSoup4(一)
- Python爬虫教程-24-数据提取-BeautifulSoup4(二)
- Python爬虫教程-25-数据提取-BeautifulSoup4(三)
- Python爬虫教程-26-Selenium + PhantomJS
- Python爬虫教程-27-Selenium Chrome版本与chromedriver兼容版本对照表
- Python爬虫教程-28-Selenium 操纵 Chrome
- Python爬虫教程-29-验证码识别-Tesseract-OCR
- Python爬虫教程-30-Scrapy 爬虫框架介绍
- Python爬虫教程-31-创建 Scrapy 爬虫框架项目
- Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍
- Python爬虫教程-33-scrapy shell 的使用
- Python爬虫教程-34-分布式爬虫介绍
- 本笔记不允许任何个人和组织转载
Python爬虫编程常见问题解决方法的更多相关文章
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- 老出BUG怎么办?游戏服务器常见问题解决方法分享
在游戏开发中,我们经常会遇到一些技术难题,而其引发的bug则会影响整个游戏的品质.女性向手游<食物语>就曾遇到过一些开发上的难题,腾讯游戏学院专家团Wade.Zc.Jovi等专家为其提供了 ...
- OpenStack安装部署管理中常见问题解决方法
一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...
- Web Deploy发布网站及常见问题解决方法(图文)
Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...
- python字符串的常见处理方法
python字符串的常见处理方法 方法 使用说明 方法 使用说明 string[start:end:step] 字符串的切片 string.replace 字符串的替换 string.split 字符 ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...
- Python 爬虫入门3种方法
Python 2.0 url = "http://www.baidu.com" print '第一种方法' response1 = urllib2.urlopen(url) pri ...
- python爬虫中文乱码解决方法
python爬虫中文乱码 前几天用python来爬取全国行政区划编码的时候,遇到了中文乱码的问题,折腾了一会儿,才解决.现特记录一下,方便以后查看. 我是用python的requests和bs4库来实 ...
- (转)Python中的常见特殊方法—— repr方法
原文链接:https://www.cnblogs.com/tizer/p/11178473.html 在Python中有些方法名.属性名的前后都添加了双下划线,这种方法.属性通常都属于Python的特 ...
随机推荐
- 进阶篇:3.9)3d打印件设计
本章目的:了解3d打印,购买3d打印机. 1.3d打印基础知识: 现在主流的3d打印技术有4种:①FDM:②SLA:③SLS:④3DP.具体如下: ①熔融沉积造型(Fused deposition m ...
- Little Sub and Traveling(杭师大第十二届校赛E题) 欧拉回路
题目传送门 题目大意: 从0出发,每次只能跳到(i*2)%n或者(i*2+1)%n,求字典序最大的哈密顿回路. 思路: 首先n为奇数时无解,先来证明这一点. 先假设n为奇数,若要回到原点,则必定有一步 ...
- 02-线性结构3 Reversing Linked List (25 分)
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...
- ImportError: No module named 'tkinter'
环境说明: windows7.vscode1.33.1.python3.7.0. 解决方案: 通过安装程序单独卸载“tcl/tk and IDLE”------重新安装“tcl/tk and IDLE ...
- Java返回泛型的方法-实例
package com.frank.app; import java.io.UnsupportedEncodingException;import java.lang.reflect.Type;imp ...
- maxscript批量设置摄像机并保存渲染图
代码可直接运行 fn renderr = ( a=box() --新建一个立方体 ambientcolor = (color ) --设置环境光(搞不太懂,白的不出错就行) to do ( dis = ...
- 安卓与windows
windows phone 还是PC啊?windows PC的话,应该就是你现在用的电脑系统吧,PC系统和安卓是不一样的,安卓是移动设备系统,基于的构架也不同,意思就是电脑上装不上安卓,移动设备也装不 ...
- Java_方法的定义以及分类
什么叫方法? 方法也叫做函数,实现某个功能 方法分类: 系统提供的方法: 常用的系统提供的方法:如:nextInt() next() nextDouble() print println()..... ...
- Docker搭建tomcat运行环境(Dockerfile方式)
上一篇文章的基本做法是通过centOS的官方镜像启动一个容器,然后进入到容器中,手动敲命令安装JDK跟tomcat,这个跟在linux下搭建没有什么区别,只是用来熟悉docker命令,并且在日常开发中 ...
- 使用vmware虚拟机安装linux