内容简述:
一:无界面浏览器
二:requests及高级登录
一:无界面浏览器
概述: PhantomJS是一个基于Webkit的无界面浏览器.
原理:把网站加载到内存并执行JavaScript,Cookie、headers等
因为无图形界面,效率比完整的浏览器高效。
使用:通常和Selenium组合使用,爬虫功能强大,可以模拟任何真实用户行为
官方文档: http://phantomjs.org/documentation
【温馨提示】
1-Selenium不再支持PhantomJS
2-可以使用Selenium+Headless Firefox或Selenium+Headless Chrome
方法:
打开网页:browser.get(url)
退出: browser.quit()
保存图片:browser.save_screenshot()
查看网页的代码:browser.page_source
Ajax加载:豆瓣电影分类-加载更多
模拟js滚动:今日头条-当滚动条滚动到底部的时候,加载数据
将滚动条加载到底部
js = 'document.documentElement.scrollTop=10000'
driver.execute_script(js)
将滚动条加载到指定位置
target =browser.find_element_by_xpath('')
browser.execute_script('arguments[0].scrollIntoView();',target)
二:requests
官方文档:http://cn.python-requests.org/zh_CN/latest/
安装:pip3 install requests
常用方法:
get(普通及带参)
res=requests.get(url)
查看网页内容 r.text
查看网页编码 r.encoding
定制网页编码 r.encoding = 'utf-8'
参数:
data是一个字典,会自动拼接url,并且编码url
r= requests.get(url=url,params=data,headers=headers)
响应:
r.text 响应字符串类型r.encoding 编码方式
r.url 请求的url r.content响应的字节类型
r.status_code响应状态码 r.headers 响应的头部信息
post(普通及带参)-百度翻译
【注】post请求如需要带参数,形参名字是data,get是params
r= requests.post(url=url,data=data,headers=headers)
定制头部 :参考get和post中的参数 headers
代理:见代码
cookie(会话)-笑话集|必应在线翻译
session= requests.Session()
session会自动保存cookie信息
笑话集 http://www.jokeji.cn/User/Login.asp
必应在线翻译 https://cn.bing.com/translator/
三:高级登录
1- 笑话集(get) http://www.jokeji.cn/User/Login.asp
2-ChinaUnix(post) http://bbs.chinaunix.net/
3-古诗文网(带验证码) https://so.gushiwen.org/