python访问需要登录的页面

python访问登录后的页面,如药智网:https://www.yaozh.com/,访问登录后的个人中心页面:https://www.yaozh.com/member/

方法一:用浏览器登录后,将cookie复制下来放在请求头中

import requests

headers = {
    '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',
    'Cookie':cookie # 登录成功后,将cookie放这里
}

member_url = 'https://www.yaozh.com/member/'
response = requests.get(member_url,headers=headers) 
data = response.content.decode('utf-8')
print(data)

方法二:用浏览器登录后,将cookie复制下来,请求时放在cookie参数中

import requests

headers = {
    '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'
}

member_url = 'https://www.yaozh.com/member/'

# 登录成功后的cookie
cookie_str = 'PHPSESSID=qnsmrrvp4o89emp44b1149u7h6; _ga=GA1.2.1639251420.1631436546; _gid=GA1.2.1102071681.1631436546; Hm_lvt_65968db3ac154c3089d7f9a4cbb98c94=1631436547; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2217bd94fc20e21-0318edf9a2d5d9-2363163-1327104-17bd94fc20f5c4%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%7D%2C%22%24device_id%22%3A%2217bd94fc20e21-0318edf9a2d5d9-2363163-1327104-17bd94fc20f5c4%22%7D; sajssdk_2015_cross_new_user=1; yaozh_logintime=1631438519; yaozh_jobstatus=kptta67UcJieW6zKnFSe2JyYnoaSaJlllpSYg26qb21rg66flM6bh5%2BscZJpbIXJk5OYlJdumGybnYecpnFuclPNmqSnwKrO0Z5ZnKtslJW9E2C3f3e7fb5b9721C12499c7fd0eb5Fcg5WalGiZaJuYmJlVcqhyZZtbpZzOm4efrHGSa2yFlpiUlZiUb5pnlZ2dklVysg%3D%3Da571eeef28b8e58738f9a181d1eb29f1; db_w_auth=923858%09d1240673769; UtzD_f52b_saltkey=WNsENa7n; UtzD_f52b_lastvisit=1631434920; UtzD_f52b_lastact=1631438520%09uc.php%09'

cookie_dict = {}
# 将cookie_str转化为dict格式
for cookie in cookie_str.split('; '):
    cookie_dict[cookie.split('=')[0]] = cookie.split('=')[1]
 
# 字典推导式
# cookies_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookie_str.split('; ')}

response = requests.get(member_url,headers=headers,cookies=cookie_dict) # cookies为字典格式
data = response.content.decode('utf-8')
print(data)

方法三:用代码自动登录,然后带着有效的cookie访问登录后的页面

用到 requests.session 类,可以自动保存cookies,等于cookieJar

import requests

headers = {
    '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'
}

session = requests.session()

# 1.代码登录

login_url = 'https://www.yaozh.com/login/'

login_form_data = {
        'username': username, # 登录用户名
        'pwd': pwd,  # 登录密码
        'formhash': '99BD9CC480',
        'backurl': 'https%3A%2F%2Fwww.yaozh.com%2F'
    }

login_resopnse = session.post(login_url, data=login_form_data, headers=headers)

# 2.登录成功后,带着有效的cookie访问member_url
member_url = 'https://www.yaozh.com/member/'
member_data = session.get(member_url, headers=headers).content.decode('utf-8')

print(member_data)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
是的,Python爬虫有时需要登录页面才能获取需要的数据。在执行登录操作之前,你需要提供正确的用户名和密码,并在登录表单中提交这些信息。这通常涉及到发送POST请求来模拟登录过程。 不同的网站可能有不同的登录方式和验证机制。有些网站可能只需要简单地在登录表单中提供用户名和密码,而其他网站可能需要更多的信息,例如验证码或其他安全验证。在编写爬虫时,你需要仔细查看目标网站的登录页面和相应的HTML代码,以了解如何正确提交登录表单。 一般来说,你可以使用Python中的第三方库,如Requests或Selenium,来实现登录操作。这些库提供了丰富的功能来发送HTTP请求、处理Cookie和表单,以及模拟浏览器行为。 在编写登录爬虫时,你需要遵循以下步骤: 1. 导入所需的库和模块。 2. 构造登录表单的数据,包括用户名和密码。 3. 发送POST请求,将登录表单数据提交到登录URL。 4. 检查登录是否成功,可以通过检查返回的响应状态码或其他相关信息来判断。 5. 如果登录成功,可以继续进行后续的爬取操作,例如访问需要登录才能访问页面或执行需要登录才能执行的操作。 请注意,爬取网站的过程可能涉及到法律和道德问题。在使用爬虫时,请确保你遵守相关的法律法规,并尊重目标网站的使用条款和隐私政策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jepson2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值