爬虫基础01

1.引入requests

爬虫基础阶段最重要的包。

1
import requests

2.使用requests访问目标网址

以爬取豆瓣为例。

get方法里面有三个参数,分别为 url、请求头、请求参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
url = 'https://m.douban.com/rexxar/api/v2/movie/recommend'

# 请求头
my_headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
'Referer': 'https://movie.douban.com/explore',
}
# GET 查询参数
my_params = {
'start': '0',
'count': '20',
'tags': '爱情'
}
# res 响应对象
res = requests.get(url, headers=my_headers, params=my_params) # params 查询参数,针对GET请求;针对POST请求, data

print(res.json()) # 响应文本数据
  • 获取请求网址

    可以在浏览器开发者工具,也可以在地址栏获取。

    image-20250114145220666

  • 获取请求头

    最重要3个:User-agent、Referer、Cookie

    这三个可以在 Request Headers 里面获取。

    image-20250114145508586

    !!!重点,利用工具网站 https://curlconverter.com/ 直接生成。

    找到要访问的ajax请求,然后复制curl。

    image-20250114145806961

    粘贴到网站,然后复制其成的格式。

    image-20250114145907042

    直粘贴到 python文件中。

    image-20250114150001714

  • 获取请求参数

    自己观察url格式,进行判断

3.访问资源并保存

这里以科幻系列为例。

image-20250114152543438

找到页面对应的ajax请求,然后进行「获取请求头」,在预览中找到数据格式。

image-20250114152806240

然后获取数据,进行输出保存。

1
2
3
4
5
6
7
8
9
list1 = response.json().get('items')
for item in list1[1:]:
title = item.get('title')
image_video = requests.get(item.get('pic').get('normal'),headers=headers,cookies=cookies)
# 保存文件,命名为电影名
with open(f'./电影封面images/{item.get("title")}.jpg','wb') as f:
f.write(image_video.content)
print(f'{title}保存完毕')
print('所有封面保存完毕')

image-20250114152833309

进行数据保存,这里以图片保存为例。

image-20250114153404922