import os
import re
import requests
import parsel
url = ‘https://sj.zol.com.cn/bizhi/5/’ # 请求地址
模拟伪装
headers = {‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.139 Safari/537.36’}
response = requests.get(url=url,headers=headers)
response.encoding = response.apparent_encoding # 自动转码, 防止中文乱码
print(response.text)
response = requests.get(url=url,headers=headers)
#print(response.text)
selector = parsel.Selector(response.text)
lis = selector.css(’.pic-list2 li’)
#img_name=1
for li in lis:
#href = li.css(‘a::attr(href)’).get()
title = li.css(’.pic img::attr(title)’).get()
#href = li.css(’.pic img::attr(src)’).get()
#print(title, href)
if title:
#href = ‘https://sj.zol.com.cn’ +li.css(‘a::attr(href)’).get()
# https://sj.zol.com.cn/bizhi/detail_12901_139948.html
# https://app.zol.com.cn/bizhi/detail_12901_139948.html#p1
#href = ‘https://app.zol.com.cn’ + li.css(‘a::attr(href)’).get() + ‘#p1’
href=li.css(‘img::attr(src)’).get()
#print(href, title)
#href = ‘https://app.zol.com.cn’ + li.css(‘a::attr(href)’).get() + ‘#p1’
#response1 = requests.get(url=href, headers=headers).content.decode(‘utf-8’)
#selector1 = parsel.Selector(response1)
#img_url=selector1.css(’.gallery li img::attr(src)’).get()
#print(img_url)
# 这里只是获取页面
img_content = requests.get(url=href, headers=headers).content
# 不可行, 都是同一张图 https://pic.netbian.com/uploads/allimg/230813/221347-16919360273e05.jpg
# https://sj.zol.com.cn/bizhi/detail_12901_139948.html
# https://app.zol.com.cn/bizhi/detail_12901_139948.html#p1
#href= selector1.css(’.photo-list-box li::attr(href)’).get()
#href = ‘https://app.zol.com.cn’ + + ‘#p1’
#response2 = requests.get(url=href, headers=headers)
#selector2 = parsel.Selector(response2.text)
#print(href)
# 若要标题乱码,此处可不解码
# response1 = requests.get(url=href, headers=headers)
# selector1 = parsel.Selector(response1.text)
# img_url = selector1.css('.slist li img::attr(src)').get()
# 这一步错了, 要去href页面找img_url, 这是在原来的url页面找了
#img_url = selector1.css('.gallery img::attr(src)').get()
#img_content = requests.get(url=img_url, headers=headers).content
#print(img_url)
# 顺便更新一下title, 因为原来的是半截的, 不全
# title1 = selector1.css('.photo .photo-pic img::attr(title)').get()
img_folder = 'img3\\'
if not os.path.exists(img_folder):
os.makedirs(img_folder)
with open(title + '.jpg', mode='wb') as f:
f.write(img_content)
# print(href, title)
print('正在保存:', title, href)
#img_name += 1