某天晚上和大爷探讨爬取医院病例数据,发现用urllib设置了完整的headers(抄了chrome的)甚至加了cookie,都失败了。改成request模块的Session就通过了。记录一下。
参考:
https://segmentfault.com/q/1010000008473868/a-1020000008476482
https://stackoverflow.com/questions/26894320/again-urllib-error-httperror-http-error-400-bad-request
https://www.cnblogs.com/whatbeg/p/5320666.html
http://python.jobbole.com/81344/
这里讲的比较清楚,但还是不够:
https://www.cnblogs.com/BigFishFly/p/6380008.html
关于爬虫,有许多工具。
框架层面,有个叫Scrapy的框架可用于爬虫,适合新手。
页面处理,有BeautifulSoup、lxml等工具包,可用于分析HTML页面,适合不熟悉正则表达式的童鞋。
编码层面,有unidecode等处理工具。
网络工具,有urllib、requests、socket、aiohttp、Twisted 、Tornado等网络库,可用于进行数据请求。
系统工具,有commands、sys等工具包可以辅助执行爬虫。
模拟工具,如selenium – 自动化真正的浏览器(Chrome浏览器,火狐浏览器,Opera浏览器,IE浏览器)。
更多工具参见此链接:http://python.jobbole.com/82633/
对比urllib与requests这两个网络库,这两个库比较简单,而socket需要动手试试,理解原理,可参见:
http://python.jobbole.com/88396/?utm_source=blog.jobbole.com&utm_medium=relatedPosts。