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爬虫编程常见问题解决方法的更多相关文章

  1. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  2. 老出BUG怎么办?游戏服务器常见问题解决方法分享

    在游戏开发中,我们经常会遇到一些技术难题,而其引发的bug则会影响整个游戏的品质.女性向手游<食物语>就曾遇到过一些开发上的难题,腾讯游戏学院专家团Wade.Zc.Jovi等专家为其提供了 ...

  3. OpenStack安装部署管理中常见问题解决方法

    一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...

  4. Web Deploy发布网站及常见问题解决方法(图文)

    Web Deploy发布网站及常见问题解决方法(图文) Windows2008R2+IIs7.5 +Web Deploy 3.5 Web Deploy 3.5下载安装 http://www.iis.n ...

  5. python字符串的常见处理方法

    python字符串的常见处理方法 方法 使用说明 方法 使用说明 string[start:end:step] 字符串的切片 string.replace 字符串的替换 string.split 字符 ...

  6. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  7. Python 爬虫入门3种方法

    Python 2.0 url = "http://www.baidu.com" print '第一种方法' response1 = urllib2.urlopen(url) pri ...

  8. python爬虫中文乱码解决方法

    python爬虫中文乱码 前几天用python来爬取全国行政区划编码的时候,遇到了中文乱码的问题,折腾了一会儿,才解决.现特记录一下,方便以后查看. 我是用python的requests和bs4库来实 ...

  9. (转)Python中的常见特殊方法—— repr方法

    原文链接:https://www.cnblogs.com/tizer/p/11178473.html 在Python中有些方法名.属性名的前后都添加了双下划线,这种方法.属性通常都属于Python的特 ...

随机推荐

  1. python之类与对象(1)

    面向对象编程是最有效的软件编写方法之一.编写类时,定义一群对象都有的通用行为.基于类创建对象时,每个对象都自动具备这种通用行为,然后可以根据需要赋予每个对象的独特的个性. 1. 类与对象的语法规范 关 ...

  2. Codeforces - tag::graphs 大合集 [占坑]

    520B 给定初始n和目标m,存在两种操作\(-1\)和\(×2\),要求最少操作次数 无脑解法是BFS,不能解决稍大的规模 当n>m时,输出n-m 否则逆向处理,转换为m到n的最小操作次数,存 ...

  3. 项目构建工具maven的使用方法

    最近在开发javaweb项目中有用到maven,以前并不是很了解,于是学习了一些相关内容,记之共享. 本篇内容在Windows环境下实施,JDK版本使用的1.7.0_79. 一.maven是什么? 简 ...

  4. 安装notepad++之后鼠标右键无Edit with notepad++

    在鼠标右键上加入使用notepad++编辑 最近发现一个问题在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现“使用notepad++编辑的选项”,不用着急可以通过简单地修 ...

  5. 《WCF全面解析》-上册 1-3章 读书笔记

    第一章.WCF简介 ESB全称为Enterprise Service Bus,即企业服务总线.把所有的服务统筹到一个总线里面请求和分发,方便管理. WCF(Windows Communication ...

  6. js 删除数组的某一项或者几项的方法

    1.arr.splice() splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...

  7. SpringBoot + Spring MVC国际化使用示例

    项目中需要显示中英文两种语言,所以需要对显示的内容进行国际化,如下是一个示例程序. 程序文件结构,如下图,后面详细列出各文件的代码. 1. 编写maven的pom.xml文件,如下: <proj ...

  8. oracle--错误笔记(一)

    一,环境模拟 SQL> select status from v$instance; STATUS ------------ OPEN SQL> select * from v$backu ...

  9. 3dsmax2017卸载/安装失败/如何彻底卸载清除干净3dsmax2017注册表和文件的方法

    3dsmax2017提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dsmax2017失败提示3dsmax2017安装未完成,某些产品无法安装,也有时候想重新 ...

  10. Kubernetes Device Plugins

    The gRPC server that the device plugin must implement is expected to be advertised on a unix socket ...