千家信息网

Python中怎么实现表单交互

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Python中怎么实现表单交互,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、表单交互import requestsparams=
千家信息网最后更新 2026年11月03日Python中怎么实现表单交互

Python中怎么实现表单交互,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、表单交互

import requests
params={ 'key1':'value1', 'key2':'value2', 'key3':'value3'}html=requests.post(url,data=params)print(html.text)

由于现在大多数网站都有多种登录方式,通过短信或者微信登录等,相对通过直接调用表单进行交互已经比较麻烦,这里不做详细介绍,主要表单交互可以通过登录后来找到对应的网页,见下文。

2、逆向工程如何构建表单

对于登录后使用了异动加载的网页,可以通过逆向工程构架你表单来找到不同的网页信息,下面我们先看一下如何构建表单。

(1)登录拉勾网,打开Chrome浏览器,选择Netwoek

(2)搜索关键字python得到post的表单信息见下图一和下图二

图一

图二

3、Cookie模拟登录

有时候表单字段可能通过加密或者其它形式的包装进行构建,这样就比较困难和麻烦,因此,这时候就有必要选择通过提交Cookie信息进行模拟登录会方便很多。

什么是Cookie?

Cookie是指某些网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据。一般互联网和电商都是通过跟踪Cookie来作为识别用户的唯一标识的。

可见Cookie是带有用户信息的,因此才可以通过Cookie来模拟登陆网站。

继续通过拉勾网如下图可以看到cookie如下:

通过代码:

import requestsurl='https://www.lagou.com'headers={   'cookie': 'xxx'}html=requests.get(url,headers=headers)print(html.text)

得到登陆后的网页源码内容:

4、案例实践:爬取拉勾网招聘信息

拉勾网结合了异步加载技术和提交表单,让我们来分析一下此网站。

分析思路:

(1)登陆打开拉勾网站,页面如下,搜索关键字:大数据

(2)通过观察,网页元素不在网页源代码中,说明使用了异步加载技术。

(3)刷新页面,查看newwork选项卡,选中XHR,可以看到异步加载(AJAX)和对应的Response中返回的json信息,证明可以从这里拿到数据。

(4)通过翻页,可以找到表单数据,同时通过翻页,pn会不断变化,上述表单交互已经介绍,这里不再赘述。

(5)在netwoek->Preview中,可以看到每页信息数,同时信息总数。

(6)由于通过单一的cookie会被限制,所以补充了一个动态的cookie进行抓取数据,实验后可行,大家可以参考

def get_cookie():   # 原始网页的URL,即url_start   url = 'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput='   s = requests.Session()   s.get(url, headers=headers, timeout=3)  # 请求首页获取cookies   cookie = s.cookies  # 为此次获取的cookies   return cookie

详细代码如下:

import requestsimport jsonimport timeimport pandas as pd#import csv
headers = { 'origin': 'https://www.lagou.com', 'accept': 'xxxx', 'user-agent': 'xxxx', 'referer': 'xxxx'}
# 获取cookies值def get_cookie(): # 原始网页的URL,即url_start url = 'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=' s = requests.Session() s.get(url, headers=headers, timeout=3) # 请求首页获取cookies cookie = s.cookies # 为此次获取的cookies return cookie
# 定义获取页数的函数def get_page(url, params): html = requests.post(url, data=params, headers=headers, cookies=get_cookie(), timeout=5) # 将网页的Html文件加载为json文件 json_data = json.loads(html.text) # 解析json文件,后跟中括号为解析的路径 total_Count = json_data['content']['positionResult']['totalCount'] page_number = int(total_Count/15) if int(total_Count/15) < 30 else 30 # 调用get_info函数,传入url和页数 get_info(url, page_number)
# 定义获取招聘信息函数def get_info(url, page): for pn in range(1, page+1): # post请求参数 params = { "first": "true", "pn": str(pn), "kd": "大数据" } # 获取信息 并捕获异常 try: html = requests.post(url, data=params, headers=headers, cookies=get_cookie(), timeout=5) #print(url, html.status_code) # 将网页的Html文件加载为json文件 json_data = json.loads(html.text) # 解析json文件,后跟中括号为解析的路径 results = json_data['content']['positionResult']['result'] df = pd.DataFrame(results) #print(df.iloc[:,0:6]) if pn == 1: total_df = df else: total_df = pd.concat([total_df,df],axis=0) # 睡眠2秒 time.sleep(2) except requests.exceptions.ConnectionError: print("requests.exceptions.ConnectionError") pass #total_df.to_csv('招聘信息.csv', sep = ',', header = True, index = False) total_df.to_excel('大数据.xls',header=True, index=False)
# 原始网页的URL#请求JSON数据的URLurl = "https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false"params = { "first": "true", "pn": 1, "kd": "大数据"}get_page(url,params)

关于Python中怎么实现表单交互问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

表单 信息 网页 数据 登录 文件 网站 用户 原始 函数 可以通过 问题 分析 招聘 登陆 下图 代码 关键 关键字 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司排名 广东万易互联网科技有限公司惠州分公司 互联网科技财经 互联网未来科技 安徽鑫晟辉互联网科技 友谊互联网络科技 赫美联合互联网科技 成都狮子座互联网科技 互联网科技公司名称 互联网和高科技公司 世界互联网科技公司市值排名 开一家科技互联网公司需要多少钱 河南住房之家互联网科技 佛山市拉法互联网科技有限公司 广州千川互联网科技有限公司 厦门江牛科技互联网 互联网安防科技感 兰石爱特工业互联网科技分公司 同城互联网络科技 广东猫王互联网科技有限公司电话 有格互联网科技 上海睿民互联网科技有限公司 上海喔噻互联网科技 易通互联网络科技有限公司 新华互联网科技校企合作 海南购全球互联网科技 深圳市运趣互联网科技有限公司 民营互联网公司国防科技 福州德业互联网科技 马化腾互联网科技教学
0