一、初识爬虫
使用requests模块通过get请求爬取指定网页的页面数据
其中requests模块的安装方法:pip install requests
import requests
# setp 1:指定URL
URL = 'https://www.baidu.com/'
# step 2:发起请求
response = requests.get(url=URL)
# step 3:接受数据
page_text = response.text
# step 4:持久化存储
with open('./baidu.html', 'w', encoding='utf-8') as a:
a.write(page_text)
print("爬取结束!")
get请求传递一个参数URL即为要爬取网页的网址,请求之后得到请求的结果,将结果转成文本格式存储到本地,文件格式设置为.html就完成了对指定网页数据的抓取。
二、设置UA(User-Agent)伪装,绕过网页简单的反爬手段
所谓UA伪装即是为get函数多传入一个参数headers,要注意headers为字典类型,可以打开一个网页,通过抓包工具拿到headers数据,具体步骤可以参照下图
最终设置完成的headers格式如下:
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'}
解决了UA伪装的问题,现在要实现这样一个功能:通过用户输入的关键字拿到对应网页的数据,这样子的话就需要对get()函数多传入一个关键字参数param,同样的param也是一个字典格式,下面就以一个示例来解释
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'}
url = 'https://cn.bing.com/search'
name = input("输入一个关键词:")
param = {'q': name}
response = requests.get(url=url, params=param, headers=headers)
page_text = response.text
filename = './' + name + '.html'
with open(filename, 'w', encoding='utf-8') as fp:
fp.write(page_text)
print(filename, "保存成功")
通过抓包工具分析搜索传入的关键字是通过get()函数param参数字典中对应的键‘q’传递的,于是我们封装一个param字典作为参数传递给get()函数,再通过get请求拿到网页输入存储到本地,至此拿到指定关键字网页数据的功能已经实现。
三、下载指定图片地址的图片
我们指定实现这一功能的基本步骤:
拿到图片的URL
通过get请求拿到图片的二进制数据
将数据保存到本地
实现功能的代码如下:
import requests
url = '指定下载的图片的地址'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.42'}
img_data = requests.get(url=url, headers=headers).content
with open('./图片1.jpg', 'wb') as fp:
fp.write(img_data)
print('finished')
好文链接
发表评论