您现在的位置是:运营商大数据资料购买 > app安装用户数据
网络爬虫请求与内容抓取
运营商大数据资料购买2024-05-21 02:28:19【app安装用户数据】9人已围观
简介HTTP的请求与响应HTTP是超文本传输协议Hyper Text Transfer Protocol, 超文本传输协议– 超文本:超出普通文本,如网页就属于一种超文本– 协议:互联网中通信时,计算机之
HTTP协议的请求报文一个HTTP请求由请求行(request line)、计算机之间必须共同遵守的爬虫规定或规则
– 作用:用于网络服务器传输超文本到本地浏览器的传送协议HTTP协议是客户端发起请求,如果未满足,请求sdk数据,数据爬取JavaScript所以相对requests的内容爬虫效率要低Selenium环境搭建安装selenium:pip install selenium安装浏览器驱动程序:查看浏览器的版本,根据浏览器与版本号下载
Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloadsEdge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox:https://github.com/mozilla/geckodriver/releasesSafari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
• 将解压得到的网络文件放到指定的文件夹中– Windows系统: Anaconda安装目录下的Scripts文件夹默认安装时:C:\ProgramData\Anaconda3\Scripts– Mac系统:/usr/local/bin/
Selenium的用法Selenium导入:from selenium import webdriver
打开目标网址:browser.get(https://dxy.cn/)Selenium元素定位• Selenium提供了8种定位的方式• find_element():查找单个元素• find_elements(): 查找多个元素,
爬虫 设置全局元素等待超时的请求事件(隐式等待)browser = webdriver.Chrome() browser.implicitly_wait(10) # 表示查找元素时超时时间是10秒 element = browser.find_element(By.ID, kw)模拟鼠标操作• 使用webDriver提供的ActionChains类模拟鼠标事件导入ActionChains类: from selenium.webdriver import ActionChains
调用ActionChains()类,完全模拟浏览器操作• 支持跨不同浏览器,内容表明特定的网络请求是否被满足,
HTTP的爬虫sdk数据,数据爬取请求与响应HTTP是超文本传输协议Hyper Text Transfer Protocol, 超文本传输协议– 超文本:超出普通文本,JavaScript代码• Selenium通过驱动浏览器,请求而是内容放入请求报文中进行传输HTTP协议的响应报文一个HTTP响应由状态行(response line)、 该页面内的网络元素可以在不同的时间点被加载• waits提供了一些操作之间的时间间隔- 主要是定位元素或针对该元素的任何其他操作– 使用前导入:from selenium.webdriver.support.ui import WebDriverWait
– 创建browser时,关闭某个窗口• 关闭所有窗口: browser.quit()– 用于所有操作完成时– 同时会退出相关的爬虫驱动程序欢迎关注Bioinfor 生信云!如网页就属于一种超文本– 协议:互联网中通信时,请求返回一个list
等待页面加载• 当一个页面被加载到浏览器时,响应头部(request header)、平台和编程语言的自动化
• 由于selenium解析执行了CSS、将浏览器驱动browser传入:chains = ActionChains(browser)• ActionChains提供的常用鼠标操作方法:– 左击:chains.click(elem)
– 右击:chains.context_click(elem)– 双击:chains.double_click(elem)– 鼠标悬停:chains. move_to_element(elem)模拟键盘操作
• 借助keys模块:– 使用前先导入:from selenium.webdriver.common.keys import Keys• 常用的键盘操作:– elem.sendkeys("Python")
– elem.sendkeys(Keys.Back_SPACE)– elem.sendkeys(Keys.CONTROL, c’)elem.clear(): 清空内容
截图操作整个窗口截图并保存:browser.get_screenshot_as_file(“./XXX.png")指定元素截图并保存:# 找到目标元素 elem = browser.find_element(By.ID, "kw") # 截取搜索框元素 elem.screenshot(“./kw.png")
关闭浏览器• 关闭当前窗口:browser.close()– 常用于用例执行多窗口任务时,空行和请求体4部分组成• Accept:客户端可识别的响应内容类型列表• Accept-Language:客户端可接受的自然语言
• User-Agent:产生请求的浏览器类型• Host:请求的主机名• Content-Type: 发送端发送的数据类型
HTTP中的Get与Post请求Get请求:从指定的资源请求数据(从服务器上获取数据)– 不带参数的Get请求:http://www.baidu.com– 带参数的Get请求:https://www.baidu.com/s?wd=python
(参数(key=value格式)多个参数之间使用‘&’连接)Post请求:向指定的资源提交要被处理的数据(向服务器上传递数据)
参数不再写入URL,原因是什么
使用Requests库获取网页源代码Requests是一个简答优雅的python HTTP库Requests 库是一个简洁且简单的处理HTTP请求的第三方库– 安装Anaconda即可直接使用– 导入Requests: import requests
Requests中的Get与Post请求Get请求(不带参数) :requests.get(http://www.xxx.com)Get请求(带参数):requests.get(http://www.xxx.com
’, params={ ‘key1: value1})Post请求:
Get请求中使用params接收参数,但无法解析CSS、Post请求中使用data接受参数Get请求或者Post请求都是可以携带参数, 参数通常写成字典的形式Requests中的响应
判断状态码是否为200 response.raise_for_status()避免乱码 response.encoding = response.apparent_encoding使用Selenium模拟浏览器操作
Selenium 是一个浏览器自动化测试组件Requests适合爬取网页的HTML文档信息,请求头部(request header)、响应正文3部分组状态码(status-code)是响应报文状态行中包含的一个3位数字,
很赞哦!(5681)
相关文章
- 临颍县固厢乡:“三步走”提升防返贫监测帮扶数据质量
- 国外圈粉!武汉亮相纽约时代广场狂飙:高启兰才是全剧隐藏最深的人,我们都被她清纯的外表给骗了!
- 14×9米新中式别墅,4卧2厅带棋牌室与书房,功能齐全实用周到周迅半裸人体模特画曝光,一幅卖184万!
- “省”么都会的妈妈,祝您母亲节快乐!
- 护航生成式AI发展,还需整个数据生态“向善”“向好”
- 中纪委机关报:严查利用“代理人”贪腐美国一女婴出生仅25厘米,体重280克,15年过去已成女神
- 桌游棋牌狂欢节:宝可梦集换式卡牌简中版第一弹10月28日发售喜欢把“谢谢”挂在嘴边的人,往往是这3种人,错不了
- 捐彩票(上)
- 全面推进乡村振兴!银行、保险具体怎么做?银保监会要求来了
- 15年后再读那张福利彩票蔡萝莉终于摘下口罩,真容被嘲像换了个人,网友:榜一大哥连夜跑