Python爬虫---1

一、初识爬虫

使用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数据,具体步骤可以参照下图

Python爬虫---1_第1张图片

最终设置完成的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请求拿到网页输入存储到本地,至此拿到指定关键字网页数据的功能已经实现。

三、下载指定图片地址的图片

我们指定实现这一功能的基本步骤:

  1. 拿到图片的URL

  1. 通过get请求拿到图片的二进制数据

  1. 将数据保存到本地

实现功能的代码如下:

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

你可能感兴趣的:(python,开发语言,个人开发,scrapy)