一、反扒策略
1、通过user-agent来判断是不是爬虫。
解决的办法:伪装user-agent客户端标识
2、通过访问频率来判断。
解决的办法:设置请求频率。
time.sleep(random.randint(0,5))
3、封ip
设置代理ip。
requests.get( url, headers, params, proxies,代理字典 ) proxies={ 'http':'http://ip:port', }
4、页面内容不是直接渲染的,而是通过js动态加载获取的。
解决办法:selenium+phantomjs来解决。
二、html页面技术
1、js:
html是页面骨架,css是装饰,js是页面的行为。
js非常重要。
2、jquery:js的库,作用就是简化js编程。
3、ajax:web的异步请求技术。
异步请求:
同步请求:
4、Dhtml
三、selenium和phantomjs
1、什么是selenium?
selenium是一个web自动化测试工具。但是它本身不带浏览器的功能。他这个工具其实就是可以作为一些外部应用的驱动程序一样,可以控制外部应用来完成一些任务。
2、selenium安装:
pip install selenium==2.48.0
3、什么是phantomjs?
phantomjs它其实就是一个内置浏览器*面浏览器引擎。他可以像浏览器一样加载页面,运行页面中的js代码。
4、为什么selenium和phantomjs的组合可以解决任何网站的页面数据问题?
selenium就像一个python程序,phantomjs就相当于一个浏览器。他们的结合就相当于用python来控制浏览器进行页面内容的解析,所以,只要能在浏览器中加载的页面,就一定能通过这个组合获取到数据。
5、phantomjs的安装。
搜索phantomjs镜像,用镜像下载速度比较快。
phantomjs-2.1.1-windows.zip这个包怎么使用:在这个里面找到phantomjs.exe,将这个exe文件放到anaconda的scripts包下面。 测试是否安装好:在cmd窗口下面输入phantomjs,如果不报错,就说明安装成功。
6.安装可视化chrome浏览器的驱动。
下载安装chromedriver.exe---->这驱动就是可以让selenium驱动谷歌一个驱动。---->下载的时候一定要对照自己chrome浏览器的版本。 下载:搜索chromedriver镜像chromedriver_win32.zip,在里面找到chromedriver.exe,把他也反倒anaconda的scripts包下面。
7、selenium的使用
文档:selenuim常用方法总结.note
链接:http://note.youdao.com/noteshare?id=0142a95cf23fadbaea95809ccb5674b2&sub=02896A50836E4995997A821419D9A063