城中城 发表于 2020-9-17 17:41:35

爬取需要账号和密码的网站问题

本帖最后由 城中城 于 2020-9-17 17:51 编辑

如果我登淘宝的话,怎么通过代码里添加账号和密码来获取cookies的值呢?


headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400'}
cookies = {'cookie': '你的cookie'}
url = 'https://list.tmall.com/search_product.htm?q=书包&s=60'
r = requests.get(url, cookies = cookies, headers = headers)
print(r.text)


以上代码是已经找到cookies才能访问淘宝的,
我想知道怎么在代码里输入账号和密码来获取cookies呢?
不要手动登入网站,检索来查看

疾风怪盗 发表于 2020-9-17 17:50:37

你上个帖子里,不是已经回复过了么,用selenium先登陆,再获取cookie或者page_source

城中城 发表于 2020-9-17 18:32:41

疾风怪盗 发表于 2020-9-17 17:50
你上个帖子里,不是已经回复过了么,用selenium先登陆,再获取cookie或者page_source

不得不说
selenium环境的也搭配好了,是能实现, 就是模拟用户操作的

我是从小甲鱼的视频看来的,想知道他是怎么转换的
零基础入门学习Python 第54讲
虽然是以前的视频了,不能再实现了

但是我就是想知道requests来进行转换的
data = {}
data['form_email'] = '你的账号'
data['form_password'] = '你的密码'
data['source'] = 'index_nav'

response = opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))

#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
    html = response.read().decode()

他就通过这个实现了
就是想知道request这个怎么实现类似小甲鱼的操作

Stubborn 发表于 2020-9-17 18:34:02

cookies属于浏览器的请求头字段,请求的时候,携带上相对的cookie即可。

城中城 发表于 2020-9-17 18:38:19

Stubborn 发表于 2020-9-17 18:34
cookies属于浏览器的请求头字段,请求的时候,携带上相对的cookie即可。

就是想知道比如进入https://list.tmall.com/search_product.htm?q=书包&s=60
就是淘宝搜索书包的第二页
需要淘宝的账号和密码
怎么通过提前输入账号和密码来通过代码获取cookies呢

已知 淘宝账号和密码
求 cookies

Stubborn 发表于 2020-9-17 18:40:37

城中城 发表于 2020-9-17 18:38
就是想知道比如进入https://list.tmall.com/search_product.htm?q=书包&s=60
就是淘宝搜索书包的第二页
...

浏览器登录,复制登录后的cookie信息呢。
你问的是模拟登录?还是cookie问题?

城中城 发表于 2020-9-17 18:43:05

本帖最后由 城中城 于 2020-9-17 18:46 编辑

Stubborn 发表于 2020-9-17 18:40
浏览器登录,复制登录后的cookie信息呢。
你问的是模拟登录?还是cookie问题?

我问的是 零基础入门学习Python 第54讲有完整代码清单
data = {}
data['form_email'] = '你的账号'
data['form_password'] = '你的密码'
data['source'] = 'index_nav'

response = opener.open(loginurl, urllib.parse.urlencode(data).encode('utf-8'))

#验证成功跳转至登录页
if response.geturl() == "https://www.douban.com/accounts/login":
    html = response.read().decode()
这个是怎么实现没cookies情况下, 只是通过账号和密码登入豆瓣的

因为现在实现不了这段代码,所以看不懂代码是怎么实现的

Stubborn 发表于 2020-9-17 19:01:23

城中城 发表于 2020-9-17 18:43
我问的是 零基础入门学习Python 第54讲有完整代码清单

这个是怎么实现没cookies情况下, 只是通过账 ...

淘宝反扒有点严重,不好破。爬虫时效性很低,要自己重新抓包。


Request URL: https://accounts.douban.com/j/mobile/login/basic
ck:
name:
password:
remember: false

城中城 发表于 2020-9-17 19:07:41

Stubborn 发表于 2020-9-17 19:01
淘宝反扒有点严重,不好破。爬虫时效性很低,要自己重新抓包。

牛逼你是怎么获得的这个网站

Stubborn 发表于 2020-9-17 19:08:52

城中城 发表于 2020-9-17 19:07
牛逼你是怎么获得的这个网站

浏览器抓包呀

城中城 发表于 2020-9-17 19:11:17

Stubborn 发表于 2020-9-17 19:08
浏览器抓包呀

怎么抓的有教程网站吗?

Stubborn 发表于 2020-9-17 19:15:20

城中城 发表于 2020-9-17 19:11
怎么抓的有教程网站吗?

https://www.jianshu.com/p/b75722457062

疾风怪盗 发表于 2020-9-17 19:18:40

你只是要8楼回复的那个网址和数据标签的话,很简单
找到登陆界面,随便输入,然后尝试登陆一下,在网络界面就会出现网址和传输的数据

城中城 发表于 2020-9-17 21:17:20

感谢{:5_108:}

城中城 发表于 2020-9-17 22:12:26

本帖最后由 城中城 于 2020-9-17 22:14 编辑



import requests
url = 'https://accounts.douban.com/j/mobile/login/basic'

data = {}
data['ck'] = 'ge4y'
data['name'] = '豆瓣账号'
data['password'] = '豆瓣密码'
data['remember'] = 'false'

header = {}
header['Accept'] = 'application/json'
header['Content-Type'] = 'application/x-www-form-urlencoded'
header['Referer'] = 'https://accounts.douban.com/passport/login'
header['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4208.400'
header['X-Requested-With'] = 'XMLHttpRequest'

res = requests.post(url, data = data, headers = header)

url = 'https://www.douban.com/'
res = requests.get(url, cookies = res.cookies, headers = header)
print(res.text)

了却了我一个心结,虽然不用直接抓cookies,但是抓取了很多其他的东西,个人感觉如果给自己用的话    还不如抓cookies来得方便
以上图为证也感谢上面俩大佬的教导
页: [1]
查看完整版本: 爬取需要账号和密码的网站问题