一、初识爬虫

使用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')

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: