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知识库 -> python 爬虫学习--DAY1-----requests模块 -> 正文阅读

[Python知识库]python 爬虫学习--DAY1-----requests模块

python 爬虫学习–DAY1-----requests模块

python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
最主要的作用:模拟浏览器发送请求。

安装request模块

  1. 打开pycharm终端Terminal
  2. 输入 pip install requests

推荐使用国内下载源下载,速度快

国内的pip源,如下:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

使用方法:pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/

requests模块爬取数据使用流程

  1. 指定url(可以简单的理解为所要爬取数据的网址)
  2. 发起请求
  3. 获取响应数据
  4. 持久化存储数据

流程实例----爬取搜狗首页的页面数据

"""
实例:爬取搜狗首页的页面数据
"""
#0.导入requests模块
import requests

#1. 指定url
url="https://www.sogou.com/"

#2. 发起请求(一般情况下发送GET请求)
# 调用requests.get()会返回一个响应对象
response=requests.get(url=url)

#3. 获取相应对象
# .text返回的时字符串形式的响应数据
page_text=response.text

#4.持久化存储
#with open(...)as    第一个参数为文件地址,第二个参数指定文件使用方式: 'r'--只读模式
#'w'--写入模式  'a'--任何append进file的数据都被自动加到文件末尾位置  'r+'--读写均可
#通过fp.write()来写入数据,实现持久化存储
with open("./sougou.html",'w',encoding="utf-8") as fp:
	fp.write(page_text)
print("爬取结束")

一些可能出现的问题

爬取某些网页,爬取结果为空

原因:可能网页有反爬机制,最常见的UA机制,比如直接爬取豆瓣网页,爬取结果为空

解决办法:增加UA伪装,在get请求中加入请求头


url="https://www.douban.com//"
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36 SLBrowser/6.0.1.8131'
    }
response=requests.get(url=url,headers=headers)

爬取的页面打开为乱码

原因:可能页面的编码形式不同,比如百度,爬取页面打开为乱码
介绍两种方法:encode()用于解码,decode用于编码
解码形式有:gbk、utf-8
通常解决方法:先将网页源代码解码成Unicode编码,然后用utf-8编码

page_text=response.text.encode('iso-8859-1').decode('utf-8')

不同的网页编码不同,根据网页编码方式来编码,比如电影天堂用gbk编码。

page_text=response.text.encode('iso-8859-1').decode('gbk')

ps:使用F12查看网页源代码的head标签里的meta标签中charset属性可以找到编码方式

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:17:17  更:2021-08-08 11:19:35 
 
开发: 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年5日历 -2024/5/17 11:29:08-

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