python 爬虫学习–DAY1-----requests模块
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。 最主要的作用:模拟浏览器发送请求。
安装request模块
- 打开pycharm终端Terminal
- 输入 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模块爬取数据使用流程
- 指定url(可以简单的理解为所要爬取数据的网址)
- 发起请求
- 获取响应数据
- 持久化存储数据
流程实例----爬取搜狗首页的页面数据
"""
实例:爬取搜狗首页的页面数据
"""
import requests
url="https://www.sogou.com/"
response=requests.get(url=url)
page_text=response.text
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属性可以找到编码方式
|