获取网页post响应数据的方法(修改标题)
本帖最后由 huashengzi 于 2020-9-30 10:36 编辑如题,请教大神
对于有子框架的网页,直接查看页面源代码只能看到主页面的代码,子框架的代码看不到。
urllib能否爬取有子框架的页面的内容,我试了只能读到主页面的内容
更新于9/30
我的实际应用场景特殊的一点,就是每次都点一次注册的按钮,页面会显示'成功' 或者 ‘失败’ 在界面上,但是如果刷新了,或者重新打开一个界面,这个文字就不会再出现,
而我现在正是想读取这个 ‘成功’或者 ‘失败’的字符。
问题2
urllib.request 发出访问请求,相当于刷新页面么?
9/30 10:25再次更新问题
我需要的数据时再 POST里面的响应数据,其实我不太懂
POST里面的数据时先必须要发送表单内容才会有返回的是么,也就是我点击注册的时候,浏览器会把我们前面填好的内容发送给服务器
但是我用python模拟发送的时候,不可能每次都是填表单,这样也就无法获得同样返回的POST的数据了,是这样么?,而随便乱写的表单肯定返回是‘’失败的。
有没有办法直接获得上一次的浏览器发出的这个POST的响应的数据呢?
如果用网络监控抓包,那么我平均每2s就会点一次注册,每<2秒内我就要知道一次 ‘成功’还是 ‘失败’ 的返回值,这个可行么?(必须让程序知道,程序还要控制后面的动作) 本帖最后由 城中城 于 2020-9-29 17:21 编辑
我只知道selenium处理方式
from selenium import webdriver
#导入动作链对应的类
from selenium.webdriver import ActionChains
from time import sleep
driver = webdriver.Chrome()
driver.get("http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
#如果定位的标签是存在于iframe标签之中的则必须通过如下操作在进行标签定位
driver.switch_to.frame('iframeResult')#切换浏览器标签定位的作用域 frame id 为 iframeResult
div = driver.find_element_by_id('draggable')
可以访问子网页 from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('https://qzone.qq.com/')
driver.switch_to.frame('login_frame')
a_tag = driver.find_element_by_id('switcher_plogin')
a_tag.click()
qq空间点击账号密码访问 发url 我知道iframe框架下的数据可以通过网页抓包访问api获得json数据来实现 网易云音乐的歌单就是这样抓取的,你可以再论坛里面搜索一下代码,授人于鱼不如授人与渔,自己琢磨出来的下次才会知道如何解决 城中城 发表于 2020-9-29 17:20
我只知道selenium处理方式
谢谢回复,我也知道这个,但是我的实际应用场景是,点击页面上的注册按钮以后,会返回 ‘成功’ 或者‘失败’ 的文字在界面上,但是如果用selenium 重新打开界面,这个文字就没有了,感觉这个方法也不行 suchocolate 发表于 2020-9-29 17:27
发url
抱歉,这是我们公司内网的地址,外部是连不上的。 huashengzi 发表于 2020-9-30 07:57
谢谢回复,我也知道这个,但是我的实际应用场景是,点击页面上的注册按钮以后,会返回 ‘成功’ 或者‘失 ...
那就需要抓包了,抓取当你点击注册成功的时候,出现的文件一个个看过去了
首先需要把Preserve log
勾选,可以保留文件,不被删除
ps urllib模块不适用了,requests这个模块更方便
页:
[1]