IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 嵩天《Python网络爬虫与信息提取》实例1:Requests库网络爬虫实战5个实例 -> 正文阅读

[人工智能]嵩天《Python网络爬虫与信息提取》实例1:Requests库网络爬虫实战5个实例

事实上,嵩天老师的《Python网络爬虫与信息提取》慕课课程已经在之前学完,但是由于当时学的时候缺乏实践经验,所以对知识点的理解并不透彻,经过几次爬虫练习,觉得自己需要再次巩固之前所学的基础知识,正好也可以借此整理一下这部分的代码笔记。

说明:爬虫练习仅为学习,不做商用,如有侵权,烦请联系删除!

首先是对requests库的一个回顾,这一部分涉及的知识主要是运用requests库获取网页源代码信息,这里提供五个简单的网页获取实例:京东商品页面的爬取/亚马逊商品页面的提取/百度搜索关键词提交/网络图片的爬取与存储/手机号码归属地自动查询。

目录

1.京东商品页面的爬取

2. 亚马逊商品页面的爬取

3.百度搜索关键词提交

4.网络图片的爬取与存储?

5.手机号码归属地自动查询

?

1.京东商品页面的爬取

随意打开一款京东商品,复制其URL链接https://item.jd.com/100021802484.html放到后面的代码中。

?

获取京东商品页面代码如下:

#微实例1:京东商品页面的爬取
import requests
url='https://item.jd.com/100021802484.html'
try:
    headers={'User-agent':'Mozilla/5.0'}
    #设定请求头
    r=requests.get(url,headers=headers)
    #打开京东商品页面链接
    r.raise_for_status()
    #判断返回状态码是否200,不是则执行except
    r.encoding=r.apparent_encoding
    #将编码方式设置为页面内容的编码方式
    print(r.text[:1000])
    #打印网页源代码前1000个字符
except:
    print('获取网页信息失败')

以下为爬取结果:

?

这里需要注意,由于京东设置了一定的反爬机制,python的网页请求会被识别并拒绝,所以需要在代码中加入一行请求头的信息headers={'User-agent':'Mozilla/5.0'},将python打开网页的行为模拟成浏览器Mozilla/5.0,如果没有这一行设置,爬取到的内容将是这样的:

2. 亚马逊商品页面的爬取

选取一款亚马逊商品,同样复制其URL链接到代码中。

?

#微实例2:亚马逊商品页面的爬取
import requests
url='https://www.amazon.cn/dp/B085282C1R/ref=lp_113033071_1_2'
try:
    headers={'User-agent':'Mozilla/5.0'}
    r=requests.get(url,headers=headers)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[1000:2000])
except:
    print('获取网页信息失败')

?爬取结果如下:

?

打开页面源代码,发现源代码中呈现的代码就是这样的,基本上没有明确显示商品相关的中文字符,可能因为商品数据是以其他数据格式插入到html页面中,可见亚马逊比较重视对数据的保护。

?

3.百度搜索关键词提交

在百度输入关键词“圣诞”可以发现它是以https://www.baidu.com/s?wd=圣诞的形式向网页提交请求的,想要搜索其他的关键词,只要把圣诞替换即可。

?

相关代码如下:

#微实例3:百度搜索关键词提交
import requests
url='https://www.baidu.com/s'
keyword={'wd':'圣诞'}
headers={'User-agent':''}
#这里需注意把请求头改成具体的,只写Mozilla/5.0的话无法显示正确的网页源代码
try:
    r=requests.get(url,headers=headers,params=keyword)
    print(r.request.url)
    #查看此时的请求url
    r.raise_for_status()
    print(len(r.text))
    #查看返回的源代码文本的长度   
except:
    print('获取网页信息失败')

代码执行结果如下:

?

4.网络图片的爬取与存储?

随意选取一张网络图片点开查看其原图,此时链接为以.jpg结尾,复制其链接到代码中。

下载并保存单张网络图片到本地的代码如下:

#微实例4:网络图片的爬取与存储
import requests
import os
#引入os库以便将图片保存到本地
url='https://img.zcool.cn/community/01161d5c63a10fa801203d22292ed4.jpg@1280w_1l_2o_100sh.jpg'
root='C:\\Users\\zhong\\Desktop\\'
#设置根目录
path=root+url.split('/')[-1]
#图片保存具体地址,用split以/分割链接,将最后一串字符作为图片名字
try:
    if not os.path.exists(root):
        os.mkdir(root)
    #确认选择的根目录是否存在,不存在则创建一个
    if not os.path.exists(path):
        r=requests.get(url)
        with open (path,'wb') as f:
            f.write(r.content)
            f.close()
            print('图片保存成功')
    #确认该目录下同名图片是否存在,不存在则打开图片链接,以二进制形式写入内容
    else:
        print('图片已存在')
except:
    print('图片爬取失败')

代码执行结果如下:?

保存到本地的图片打开如下:?

5.手机号码归属地自动查询

为了查询手机号码归属地,这里需要借用一个网站https://www.ip138.com/,选择手机号码归属地查询后随机输入一个手机号码15572722727,发现网址出现了变化,说明查询时只需要将链接https://www.ip138.com/mobile.asp?mobile=15572722727后的手机号码进行替换即可。

完整代码如下:

#微实例5:手机号码归属地自动查询
import requests
url='https://www.ip138.com/mobile.asp?mobile='
headers={'User-agent':'Mozilla/5.0'}
try:
    r=requests.get(url+'15572722727',headers=headers)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[:1000])
except:
    print('获取网页信息失败')

输出结果如下,这里只显示了源代码中的前1000个字符:

参考资料:
嵩天. Python网络爬虫与信息提取[EB/OL].https://www.icourse163.org/course/BIT-1001870001.

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:09:34  更:2021-12-26 22:14:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 23:20:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码