import requests,re,json,os
from urllib import request
# 当前路径下新建文件夹
if not os.path.exists('download2'):
os.mkdir('download2')
#ajax获取路由
i = 0
z = 0
while i < 3:
url = 'https://www.toutiao.com/search_content/?offset='+'z'+'&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab'
response = requests.get(url)
#可以通过response.json直接获取转化后的对象(dict)
html_json_dict = response.json()
#获取dict中data key对应的列表
data_list = html_json_dict['data']
#遍历data_list列表中的每一项,有article_url我们就取这个值。
for data_item in data_list:
if 'article_url' in data_item:
article_url = data_item['article_url']
#获取请求头
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}
#获取返回状态码
response = requests.get(article_url,headers=headers)
#获取返回页面,字符串格式
html_str = response.text
#正则匹配条件
pattern = r'gallery: JSON\.parse\((.*)\),'
#进行正则匹配
match_res = re.search(pattern, html_str)
# 如果正则匹配成功
if match_res:
# 获取匹配成功的内容
json_origin = match_res.group(1)
# 去掉字符串
json_buzhidao = json.loads(json_origin)
# 将字符串格式转化为字典格式
res_dict = json.loads(json_buzhidao)
# 获取需要的图片路由
sub_images_list = res_dict['sub_images']
# 遍历图片路由
for image in sub_images_list:
#找到需要的图片路由
image_url = image['url']
# 文件路径及命名
filename = 'download2/' + image_url.split('/')[-1] + '.jpg'
# 下载图片,放到指定文件夹下
request.urlretrieve(image_url, filename)
else:
print('你写错了')
z += 20
i += 1