Python开发爬虫常用的工具总结
reqeusts:Python HTTP网络请求库;
pyquery: Python HTML DOM结构解析库,采用类似JQuery的语法;
BeautifulSoup:python HTML以及XML结构解析;
selenium:Python自动化测试框架,可以用于爬虫;
phantomjs:无头浏览器,可以配合selenium获取js动态加载的内容;
re:python内建正则表达式模块;
fiddler:抓包工具,原理就是是一个代理服务器,可以抓取手机包;
anyproxy:代理服务器,可以自己撰写rule截取request或者response,通常用于客户端采集;
celery:Python分布式计算框架,可用于开发分布式爬虫;
gevent:Python基于协程的网络库,可用于开发高性能爬虫
grequests:异步requests
aiohttp:异步http client/server框架
asyncio:python内建异步io,事件循环库
uvloop:一个非常快速的事件循环库,配合asyncio效率极高
concurrent:Python内建用于并发任务执行的扩展
scrapy:python 爬虫框架;
Splash:一个JavaScript渲染服务,相当于一个轻量级的浏览器,配合lua脚本通过他的http API 解析页面;
Splinter:开源自动化Python web测试工具
pyspider:Python爬虫系统
网页抓取思路
数据是否可以直接从HTML中获取?数据直接嵌套在页面的HTML结构中;
数据是否使用JS动态渲染到页面中的?数据嵌套在js代码中,然后采用js加载到页面或者采用ajax渲染;
获取的页面使用是否需要认证?需要登录后页面才可以访问;
数据是否直接可以通过API得到?有些数据是可以直接通过api获取到,省去解析HTML的麻烦,大多数API都是以JSON格式返回数据;
来自客户端的数据如何采集?例如:微信APP和微信客户端
如何应对反爬
不要太过分,控制爬虫的速率,别把人家整垮了,那就两败俱伤了;
使用代理隐藏真实IP,并且实现反爬;
让爬虫看起来像人类用户,选择性滴设置以下HTTP头部:Host:
https://www.baidu.comConnection:keep-aliveAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36Referer: http://s.weibo.com/user/gamelife1314&Refer=indexAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8
查看网站的cookie,在某些情况下,请求需要添加cookie用于通过服务端的一些校验;
读者福利:知道你对Python感兴趣,便准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
检查学习结果。
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取
了解python的前景:https://blog.csdn.net/weixin_49895216/article/details/127186741
了解python的兼职:https://blog.csdn.net/tingting11232/article/details/128578996