栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

cookie模拟登陆淘宝

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cookie模拟登陆淘宝

1、获取cookies,这里用的是selenium库的get_cookies()函数:

from selenium import webdriver
import time
import requests
import re

headers ={
    "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'
}`在这里插入代码片`

browser = webdriver.Chrome()
url = 'https://login.taobao.com/member/login.jhtml'
browser.get(url)
time.sleep(20)  # 留20秒或者更长的时间来手动进行登录;推荐扫码登陆
cookies = browser.get_cookies()  # 获取Cookie
print (cookies)

打印输出后获得的是一个列表,列表元素包含一个个字典,字典中包含各个cookie信息

2、创建一个cookies_dicth空字典,存储从各个cookie提取到的name和value,处理成requests库使用cookies时所需要的格式:
代码如下

cookie_dict = {}
for item in cookies:
    cookie_dict[item['name']] = item['value']

3、使用获取到的cookies利用requests登陆指定url,获取源代码并打印输出,代码如下:

url = 'https://s.taobao.com/search?q=大码女装'
res = requests.get(url, headers=headers, cookies=cookie_dict).text

print(res)

打印结果如下:

4、根据获取到的源代码,我们可以写出相应的正则表达式提取所需的内容,这里我们以提取标题、价格、付款人数为例,代码如下:

title = re.findall('"raw_title":"(.*?)"', res)
price = re.findall('"view_price":"(.*?)"', res)
sale = re.findall('"view_sales":"(.*?)人付款"', res)

for i in range(len(title)):
    print(title[i] + ',价格为:' + price[i] + ',销量为:' + sale[i])

打印输出后的结果如下:

至此,我们完成了cookies模拟登陆淘宝并爬取数据,完整代码如下:

from selenium import webdriver
import time
import requests
import re
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}

# 1.模拟登陆 + 获取Cookie
browser = webdriver.Chrome()
url = 'https://login.taobao.com/member/login.jhtml'
browser.get(url)
time.sleep(20)  # 留20秒或者更长的时间来手动进行登录;推荐扫码登陆
cookies = browser.get_cookies()  # 获取Cookie

# 2.修改Cookie数据格式
cookie_dict = {}
for item in cookies:
    cookie_dict[item['name']] = item['value']

# 3.Requests库使用Cookie
url = 'https://s.taobao.com/search?q=王宇韬'
res = requests.get(url, headers=headers, cookies=cookie_dict).text

# 验证是否登录成功
if 'fgwyt94' in res:
    print('登录成功')

# 4.正则表达式提取信息
title = re.findall('"raw_title":"(.*?)"', res)
price = re.findall('"view_price":"(.*?)"', res)
sale = re.findall('"view_sales":"(.*?)人付款"', res)

for i in range(len(title)):
    print(title[i] + ',价格为:' + price[i] + ',销量为:' + sale[i])
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号