requests库获取网页的方法,使用requests库抓取数据

  requests库获取网页的方法,使用requests库抓取数据

  网络爬虫的海盗是网络爬虫的大小。

  抓取网页,播放网页:规模小,数据量小,抓取速度不灵敏;请求库

  抓取网站抓取系列网站:规模中等,数据量大,抓取速度敏感;剪贴簿图书馆

  抓取全网:大规模,搜索引擎,抓取速度是关键;定制开发

  网络爬虫引发的问题

  网络爬虫的骚扰:受限于编写水平和目的,网络爬虫会给Web服务器带来巨大的资源开销。

  网络爬虫的法律风险:服务器上的数据属于财产权,网络爬虫获取数据后获取利润会带来法律风险。

  网络爬虫泄露隐私:网络爬虫可能有能力突破简单的访问控制,获取受保护的数据,泄露个人隐私。

  网络爬虫的限制

  来源:判断用户代理的限制

  检查访问HTTP协议头的UserAgent域,只响应浏览器或友好爬虫的访问。

  公告:Robots协议通知所有爬虫它们的爬行策略,并要求它们遵守Robots协议。

  Robots Exclusion标准网络爬虫排除标准功能:网站告诉网络爬虫哪些页面可以抓取,哪些不可以。

  表单:网站根目录下的robots.txt文件

  Robots协议的基本语法:

  https://www.jd.com/robots.txt

  用户代理:* #评论:

  不允许:/?* *代表所有

  不允许:/pop/*。html/代表根目录

  机器人协议的符合性

  网络爬虫使用Robots协议:自动或手动识别robots.txt,然后抓取内容。

  绑定:Robots协议是建议的,但不是绑定的。网络爬虫可以不遵守,但是有法律风险。

  请求库的爬网实例示例1:爬网导入请求URL= 3359 item.jd.com/100004770249.html try:kv={ user-agent : Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,like Gecko)Chrome/88 . 0 . 4324 . 150 Safari/537.36 } r=requests . get(URL,Headers=kv)r . raise _ for _ status()r . encoding=r . apparent _ encoding print(r . text[:1000])except:print( crawling failure )示例2:抓取亚马逊产品页面的导入请求URL= 3359www.amazon.cn/dp/B01MYH8A99 try:kv={ user-agent : Mozilla/Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/88 . 0 . 4324 . 150 Safari/537.36 } r=requests . get(URL,Headers=kv)r . raise _ for _ status()r . encoding=r . apparent _ encoding print(r . text[:1000])除:print(抓取失败)例3:百度360搜索关键词提交

  百度的关键词界面:http://www.baidu.com/s? wd=关键词

  30的关键词界面:http://www.so.com/s? q=关键词

  import requestsurl= https://www . Baidu . com/s try:kv={ wd : python } # kv={ User-Agent : Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/88 . 0 . 4324 . 150 Safari/537.36 } r=requests . get(URL,Params=kv)r . raise _ for _ status()print(r . request . URL)len(r . text))除:print(抓取失败)实例4:网络图片的爬取和存储网页图片链接格式:http://www.example.com/picture.jpg

  图片抓取代码

  导入请求import osurl= https://img-prod-CMS-rt-Microsoft-com . akamaized . net/CMS/API/am/image file data/re 4 wwtv?ver=1428 path= E://py study//1 . jpg 如果不是OS . path . exists(path):kv={ User-Agent : Mozilla/5.0(Windows NT 10.0;Win64x64) AppleWebKit/537.36 (KHTML,like Gecko)Chrome/88 . 0 . 4324 . 150 Safari/537.36 } r=requests . get(URL,Heads=kv)r . raise _ for _ status()with open(path, WB )as f:f . write(r . content)# r . content表示返回内容的二进制形式,F.close() #图片是以二进制形式存储的打印(文件保存成功)else: print(文件已经

  Ip138 IP查询:http://m.ip138.com/ip.asp? IP=IP地址

  进口申请http://m.ip138.com/ip.asp?IP= r=请求。获取(URL 202。204 .80 .112 )r . raise _ for _ status()r . encoding=r . apparent _ encoding print(r . text[:1000])

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: