python爬虫手动输入cookie有用,用session对像没用是怎么回事啊?

#爬原图不是缩略图
import json
import requests
from lxml import etree
import re
import os
#创建一个session对象
sessionp = requests.Session()
if not os.path.exists('./极简壁纸爬取结果'):
os.mkdir('./极简壁纸爬取结果') # 创建保存图片的文件夹
#1.对这组图片的url发get请求,拿到每张图片的url
url = '


html1 = requests.get(url=url)
#print(html1.text)
d = etree.HTML(html1.text)
slist = d.xpath('cml/body/div[3]/div[4]/ulP/div/a/@href') #href="/bizhi^bujingxin_li_v37329/pic_607228.html"
《步步惊心:丽》剧组时尚写真桌面壁纸 第1张 2560x1600 高清壁纸图片 (天堂图片网) 《步步惊心:丽》剧组时尚写真桌面壁纸,是图集「《步步惊心:丽》剧组时尚写真桌面壁纸」的第1张, 这张图片的原图尺寸是2560x1600, 图片编号:37329-607228,相关的还有步步惊心丽壁纸图片,写真壁纸图片,李准基壁纸图片,李知恩壁纸图片,姜河那壁纸图片 https://www.ivsky.com/bizhi/bubujingxin_li_v37329/pic_607228.html

#html1.close()
ec = "var imgURL='(.?)';var"
ed = "<img.
?src='(.*?)' alt="
hdes_1 = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
}
#2.对每张图的url发请请求
for li in slist: #
404错误_页面没有找到(天堂图片网) https://www.ivsky.com/bizhi/moraine_lake_v48781/pic_769150.html%22

url2 ='https://www.ivsky.com'+li
print(url2)
html2 = sessionp.get(url=url2,headers=hdes_1)
picurl = "https://www.ivsky.com/get_picinfo.php?tn=downloadpic&picurl="+re.findall(ec, html2.text)[0] #data的url
print(picurl)
hdes_2 = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0",
"referer": url2, #
404错误_页面没有找到(天堂图片网) https://www.ivsky.com/bizhi/moraine_lake_v48781/pic_769150
.
}
print(hdes_2)
# parameters = {
# "tn": "downloadpic",
# "picurl": "/img/bizhi/pic/201608/05^bujingxin_li.jpg"
# }
#3.对保存原图后缀的data发请求
data_html = sessionp.get(url=picurl,headers=hdes_2)
#json_data = data_html.json()
print(data_html.text)

break

img

img

img


打印data_html为空,
手动增加cookie,就能打印。

如果你的session没有设置有效的cookie,这个session也会被反爬虫限制了。

我遇到的情况是,鼠标移动就会发请求更新cookie。登录时的cookie早就作废了,所以要模拟人的动作,按顺序发起请求,更新cookie