今日头条网页图片爬取

本文介绍了一款使用Python编写的爬虫程序,该程序能够从今日头条网站抓取街拍图片,并通过解析网页内容获取图片链接,最后下载并保存图片到本地指定文件夹。文章详细展示了如何设置请求头、发送HTTP请求、解析返回的JSON数据以及正则表达式匹配等关键技术环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 import requests,os,json,re
 2 from urllib import request
 3 from day3.mysql_text import mysql_conn
 4 for i in range(0,60,20):
 5     url = 'https://www.toutiao.com/search_content/?offset={}&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'.format(i)
 6     print(url)
 7 
 8     headers = {
 9         'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36'
10     }
11 
12     response = requests.get(url,headers=headers)
13     html_json_dict = response.json()
14 
15 
16     # 获取dict中的data key对应的列表
17 
18 
19 
20     data_list = html_json_dict['data']
21 
22     # 获取列表中含有article_url的值
23     for data_item in data_list:
24         if 'article_url' in data_item:
25             article_url = data_item['article_url']
26 
27             response = requests.get(article_url,headers=headers)
28 
29             html_str = response.text
30             pattern = r'gallery: JSON.parse\((.*)\),'
31 
32             match_res = re.search(pattern, html_str)
33 
34             # 新建文件夹
35             if not os.path.exists('downloads'):
36                 os.mkdir('downloads')
37 
38             if match_res:
39                 # print(match_res.group(1))
40                 json_origin = match_res.group(1)
41                 a1 = json.loads(json_origin)
42                 # print(a1,type(a1))
43                 a2 = json.loads(a1)
44                 # print(a2['sub_images'])
45                 for a2_list in a2['sub_images']:
46                     image_url = a2_list['url']
47 
48                     filename = 'downloads/' + image_url.split('/')[-1] + '.jpg'
49                     print(filename)
50                     request.urlretrieve(image_url, filename)
51 
52             else:
53                 pass

 

转载于:https://www.cnblogs.com/daihao9527/p/9490909.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值