Python利用requests抓取页面源代码(基础)

Requests模块是一个用于网络访问的模块.

由于使用到的requests库为第三方库,需要事先对其进行安装

1.1安装requests

(1)利用cmd安装,首先确保Python已经下载入电脑内,然后启动cmd控制台,输入pip install requests,等待下载完成即可

(2)利用pycharm安装,在pycharm的Terminal中输入 pip install requests 命令进行request的安装

回车等待安装完毕即可

1.2网页请求方式

了解一下网页请求方式

一般来说,我们我们所使用的HTTP协议或者HTTPS协议,使用的请求方式最常见的有GET方式和POST方式

  • GET方式:是最常见的HTTP方法之一,用于从指定资源请求数据,不需要在浏览器中输入链接之外的东西,只是想要获取一些资源,例如网页源代码
  • POST方式:用于将数据发送到服务器来创建或者更新资源,在访问某个网页之前需要用户输入链接之外的东西,需要发送给服务器,这样服务器才能根据你发送的信息来返回响应。

2.使用

2.1爬取搜索关键字页面数据

以搜狗搜索周杰伦为例

在搜狗搜索引擎中键入“周杰伦”后,得到的网址如下

https://www.sogou.com/web?query=邓紫棋&_asf=www.sogou.com&_ast=&w=01015002&p=40040108&ie=utf8&from=index-nologin&s_from=index&oq=&ri=0&sourceid=sugg&suguuid=&sut=0&sst0=1634387928175&lkt=0%2C0%2C0&sugsuv=1634387082744536&sugtime=1634387928175

我们只保留“https://www.sogou.com/web?query=邓紫棋”的地址(这个地址同样可以完成请求命令)

import requests #首先导入requestsurl = "https://www.sogou.com/web?query=邓紫棋"
resp = requests.get(url) #由抓包工具可知使用get方法请求
print(resp)
resp.close()

运行结果为

从结果可知,我们的请求命令成功,并且得到了服务器回应

随后我们将响应内容输出

可以选择不同的输出内容,在这里我们选择text来查看源代码

2.2拦截处理

随后检查源代码发现我们的请求遭到了拦截,原因可能是是服务器认为我们的这次请求是通过自动化程序发出的而不是正常浏览器发出的

解决这个问题我们可以进行一个小小的伪装,用浏览器打开我们请求的页面的抓包工具的Network后刷新页面,选择其中的一个目标中找到User-Agent

headers = { #准备一个headers
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.47"
}
resp = requests.get(url,headers = headers)#将得到的User-Agent赋给headers来进行伪装

再次运行抓取,我们便得到了该页面的源代码

2.3改进(实现用户自主查询+将源代码写入文件)

#实现用户输入想要搜索的人物或者关键字,并进行抓取
import requestsquary = input("输入一个你喜欢的明星")
url = f"https://www.sogou.com/web?query={quary}"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 Edg/94.0.992.47"
}resp = requests.get(url,headers = headers)
with open("result.txt", mode="w",encoding="UTF-8") as f: #将源代码写入文件,将编码格式改为UTF-8f.write(resp.text)
f.close()
resp.close() #记得关闭

这样我们就完成了利用requests库来抓取网页源代码(有了源代码,就可以获得更多的我们想要的数据了,这也是数据抓取的第一步)

Python利用requests抓取页面源代码(基础)相关推荐

  1. PHP利用正则表达式抓取页面数据

    PHP利用正则表达式抓取页面数据 (记录一下,00后程序员第一天写博客,2021/4/1) (抓取招头标网站中的数据) <?php header('Content-Type:text/html; ...

  2. Python爬虫 requests抓取企查查

    企查查首页商业快讯抓取  打开调试分析请求 每次请求返回10条数据 翻页主要依靠lastRankIndex和lastRankTime参数, 而且这两个值是一样的 (首次请求 firstRankInde ...

  3. 【需求】Python利用selenium抓取顺丰的地址数据

    文章目录 目的 代码 数据爬取 运行效果 目的 通过抓取顺丰的地址填写信息,获取全国的省市区数据 代码 # encoding:utf-8 # FileName: AreaCity # Date: 20 ...

  4. python利用fiddler抓取微信公众号文章及标题(简单易懂)

    1安装好fiddler配置好安全证书,这一步很简单就是安装,自己问度娘 2登录微信客户端(电脑),打开公众号滑动,查看响应信息,主要要过滤一下,排除干扰 mp.weixin.qq.com; 3可以点开 ...

  5. 【需求】Python利用selenium抓取京东的地址数据

    文章目录 目的 爬取数据 目的 需要收集京东的地址信息省市区 # encoding:utf-8 # FileName: AreaCity # Date: 2022/07/22 11:55 # Auth ...

  6. Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺

    其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...

  7. python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  8. 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  9. python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

最新文章

  1. OpenCV代码提取:transpose函数的实现
  2. 记一次 Python Web 接口优化
  3. Android封装快捷键,android打包一个没有快捷键的apk,并且通过另一个应用启动
  4. 助记词创建以太坊钱包源码_墨客科普 | MOAC区块链钱包账号管理
  5. 远程连接(加密验证问题解决)
  6. 如何下载mysql-java驱动jar包
  7. HelloWorld
  8. 算法面试和实习经验分享
  9. python获取手机号码归属地_基于Python的免费手机号码归属地查询
  10. 【Unity2D入门教程】简单制作战机弹幕射击游戏③C#编写 子弹Laser脚本
  11. 手机变Android麦克风,【工具】手机秒变摄像头及麦克风方法
  12. 相信我,SDRAM真的不难(五)----读操作(页突发模式)
  13. android关闭听筒模式,Android开发【06-29视频贴】切换听筒模式部分手机失效,怎么解决?...
  14. 硬盘提示设备未就绪要如何办啊
  15. WebGL简易教程——目录
  16. Drupal 模块开发基本教程(二)
  17. 老男孩mysql运维dba实战21部完整版_老男孩Mysql DBA高级运维系列课程(16部)
  18. MMGG热点 ▏AssangeDAO提案
  19. 【akka】Akka源码分析-Event Bus
  20. BeTheme:遵循最新设计趋势的WordPress主题

热门文章

  1. 通过设置路由器DMZ主机ip,却还是没法通过外网访问
  2. opencv3/C++ 将图片转换为视频
  3. Win7-64 重装 Anaconda3
  4. TCP/IP网络编程复习(上)
  5. 众多跑车壁纸素材一键即可获取
  6. NOIP-2018 提高组(复赛) 模拟试题之--T1 帽子戏法
  7. CCS Invalid project description
  8. nyoj 547- Interesting Punch-Bowl(优先队列模拟)
  9. 使用css制作跳动的心
  10. node.js基于微信小程序的校园失物招领毕业设计源码072343