博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【爬虫实战】3初学Python网络爬虫(5个实例)
阅读量:3917 次
发布时间:2019-05-23

本文共 2539 字,大约阅读时间需要 8 分钟。

Requests库网络爬虫实战(5个实例)

实例1:京东商品页面的爬取

要爬取的页面为:https://item.jd.com/2967929.html

代码如下:

import requestsdef getHTMLText(url):    try:        r = requests.get(url, timeout=30)        r.raise_for_status()     # 如果状态不是200,引发HTTPError异常        print(r.status_code)        r.encoding = r.apparent_encoding        print(r.encoding)        return r.text    except:        print('爬取失败')if __name__ == "__main__":    url = "https://item.jd.com/2967929.html"    print(getHTMLText(url)[:1000])

结果为:

200ascii

需要登入京东,待解决的问题

实例2:亚马逊商品页面的爬取

第一次需要Marketplace APIs ,需要修改r.request.headers

import requestsdef getHTMLText(url):    try:        kv = {
'User-Agent':'Mozilla/5.0'} r = requests.get(url, headers=kv, timeout=30) # print(r.request.headers) r.raise_for_status() # 如果状态不是200,引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: print('爬取失败')if __name__ == "__main__": url = "https://www.amazon.cn/gp/product/B01M8L5Z3Y" print(getHTMLText(url))

实例3:百度/360搜索关键字提交

搜索引|擎关键词提交接口:http://www.baidu.com/s?wd=keyword

import requestsdef getHTMLText(url):    try:        kv = {
'wd': 'Python'} r = requests.get(url, params=kv, timeout=30) print(r.status_code) r.raise_for_status() # 如果状态不是200,引发HTTPError异常 r.encoding = r.apparent_encoding return r.text except: print('爬取失败')if __name__ == "__main__": url = "http://www.baidu.com/s?wd=keyword" print(len(getHTMLText(url)))

这里的url应该为"http://www.baidu.com/s?“或"http://www.baidu.com/s”

实例4:网络图片的爬取和存储

图片地址:https://edu-image.nosdn.127.net/3321D6673EB82C94D08E1B80E8344166.jpg

这个代码请动手敲一下,第一次爬图片QAQ

import requestsimport osdef getHTMLText(url):    try:        r = requests.get(url, timeout=30)        print(r.status_code)        r.raise_for_status()  # 如果状态不是200,引发HTTPError异常        r.encoding = r.apparent_encoding        return r    except:        print('爬取失败')if __name__ == "__main__":    url = "https://edu-image.nosdn.127.net/3321D6673EB82C94D08E1B80E8344166.jpg"    root = "D://University_Study//2021毕设//2020毕业设计//Code//教师授课视频//第一周/"    path = root + url.split('/')[-1]        # 在root新建3321D6673EB82C94D08E1B80E8344166.jpg    if not os.path.exists(root):        os.mkdir(root)    if not os.path.exists(path):        r = getHTMLText(url)        with open(path, 'wb') as f:            f.write(r.content)            f.close()            print('文件保存成功')    else:        print('文件已存在')

实例5:IP地址归属地的自动查询

https://m.ip138.com/iplookup.asp?ip=ipaddress

爬取失败,可能需要校园网或者需要登陆

小结

MOOC第一周网络爬虫之规则完毕

转载地址:http://fgvrn.baihongyu.com/

你可能感兴趣的文章
.NET Core 中生成验证码
查看>>
.NET Core 中导入导出Excel
查看>>
初识ABP vNext(8):ABP特征管理
查看>>
WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面
查看>>
【BCVP】实现基于 Redis 的消息队列
查看>>
网络安全逐渐成为程序员的必备技能
查看>>
统信发布UOS V20 进军个人市场 生态日益完善
查看>>
【追加功能】OFFICE插件管理工具重整后再上路,更好用易用。
查看>>
BeetleX框架详解-小结
查看>>
打造钉钉事件分发平台之钉钉审批等事件处理
查看>>
2020 中国开源年会(COSCon'20)再启程:开源向善(Open Source for Good)
查看>>
拥抱.NET 5,从自研微服务框架开始
查看>>
开源特训营 - Lesson 4 - 如何运营社区
查看>>
C# 中的 is 真的是越来越强大,越来越语义化
查看>>
简单理解CAP-BASE
查看>>
gRPC-微服务间通信实践
查看>>
Firefox 18周岁
查看>>
IdentityServer4系列 | 初识基础知识点
查看>>
为什么我们总是「习惯性辩解」?
查看>>
.NET 异步解说
查看>>