文章目录
-
-
- 一、如何写一个完整的爬虫程序?
- 二、实战中常见错误类型及解决
-
-
- 0、urllib 与 requests的区别
- 1、urllib库在python2与python3的用法区别
- 2、Instance of 'URLError' has no 'code' member
- 3、Unexpected indent
- 4、SyntaxError: invalid syntax
- 5、UnboundLocalError: local variable 'xxx' referenced before assignment
- 6、 python reload(sys)找不到,name 'reload' is not defined
- 7、如何在github下载工程?
- 8、如何打开从github下载的工程?
- 9、报错AttributeError: 'NoneType' object has no attribute 'xpath'?
- 10、TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
-
- ———————————————————————————
- 1)初识爬虫
- 2)爬虫的原理
- 3)入门常见问题解答
-
一、如何写一个完整的爬虫程序?
基本流程
(图源以及参考:python爬虫系列 https://www.jianshu.com/p/4424c7f36143)
爬虫的流程:请求网页 - 解析网页 - 提取网页数据 - 保存数据
(1)请求网页
(2)解析网页、提取数据的组合:bs4 + lxml 或者 lxml+xpath等
(3)保存数据
常用库介绍
二、实战中常见错误类型及解决
0、urllib 与 requests的区别
在模拟发起网络请求这一步中,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装,它们使用的主要区别:
requests可以直接构建常用的get和post请求并发起,urllib一般要先构建get或者post请求,然后再发起请求。
(urllib是内置的直接用,requests是第三方库要下载安装)
1、urllib库在python2与python3的用法区别
在python3.3后urllib2已经不能再用,只能用urllib.request来代替,其他变化点击这里
urllib四大组成模块:
(1)urllib.request——请求模块
(2)urllib.parse——url解析模块
(3)urllib.robotparser——robot.txt解析模块
(4)urllib.error——异常处理模块
2、Instance of ‘URLError’ has no ‘code’ member
解决:把URLError换成HTTPError
https://blog.csdn.net/weixin_41544534/article/details/86684857
3、Unexpected indent
解决:一般为缩进错误,python严格到只认一个tab或者四个空格
4、SyntaxError: invalid syntax
解决:
1、符号使用不正确,如半个括号(这个可能错误并不在标志行,前后找找对称括号);使用了中文符号;忘在if、elif、else、for、while、class、def声明末尾添加分号“:”
2、使用 “=”而不是 “==”
3、错误的使用缩进量。
记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。