python爬取需要登陆的页面

1、登陆后查看如下信息:
在这里插入图片描述

import urllib.request
import http.cookiejar
import urllib.parse
from urllib.request import urlopen

url="http://xxx.xx.xx.x:8380/xxx/login"
agent='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'

cookie=http.cookiejar.CookieJar()
opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))

headers = {'User-Agent':agent}
postdata=urllib.parse.urlencode({'username':'admin','password':'admin'})
postdata=postdata.encode('UTF-8')

request=urllib.request.Request(url,postdata,headers)
result=opener.open(request)#登陆后的页面
result=opener.open('http://xxx.xx.xx.x:8380/xxxx/xxxx/list')#想要爬取的页面
print(result.read().decode('UTF-8'))

输出结果:
在这里插入图片描述

Python爬取需要登录的网站通常涉及以下几个步骤: 1. **发送登录请求**:使用`requests`库发送登录请求,模拟用户在登录表单中输入用户名和密码。 2. **处理Cookies**:登录成功后,服务器会返回一个Cookies,爬虫需要保存这些Cookies以便后续请求使用。 3. **访问受保护的页面**:使用保存的Cookies访问需要登录才能访问的页面。 以下是一个简单的示例代码,演示如何使用`requests`库进行登录爬取受保护的页面: ```python import requests # 创建一个会话对象 session = requests.Session() # 登录页面的URL login_url = 'https://example.com/login' # 登录数据 payload = { 'username': 'your_username', 'password': 'your_password' } # 发送登录请求 response = session.post(login_url, data=payload) # 检查登录是否成功 if response.ok: print('登录成功') # 访问受保护的页面 protected_url = 'https://example.com/protected-page' protected_response = session.get(protected_url) # 检查访问是否成功 if protected_response.ok: print('访问受保护的页面成功') print(protected_response.text) else: print('访问受保护的页面失败') else: print('登录失败') ``` ### 注意事项 1. **处理验证码**:有些网站在登录时会要求输入验证码,处理验证码需要使用OCR库或手动输入。 2. **反爬虫机制**:一些网站有反爬虫机制,可能会检测到异常请求并封禁IP。可以通过设置请求头、使用代理等方式绕过。 3. **合法性和道德性**:在进行网络爬虫时,请确保遵守目标网站的使用条款和法律法规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值