吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1489|回复: 11
收起左侧

[求助] python进行模拟操作之后获取网页文本数据

[复制链接]
16713720339 发表于 2022-12-10 22:26
from urllib.parse import urlencodeimport requestsfrom lxml import etreeimport reimport timefrom selenium import webdriver
for uuu in range(1,11):    if uuu!=10:        uuu='0'+str(uuu)    url = "http://www.henanjianan.com/tiku/dianhan/"+str(uuu)+".html"    ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240"        #点击模拟     driver = webdriver.Edge()
    driver.get('http://www.henanjianan.com/tiku/dianhan/10.html')   #打开网页
    time.sleep(10)                                   #加载等待
    driver.find_element_by_xpath("/html/body/form/div[5]/input").click()#点击按钮    time.sleep(3)    alertObject = driver.switch_to.alert    print(alertObject.text)  # 打印提示信息    time.sleep(1)    alertObject.accept()  # 点击确定按钮
    #获取url的html    r = requests.get(url)    #r=    r.encoding="utf-8"
    content = r.text          #获取HTML的内容    print(content)    html = etree.HTML(content)  #分析HTML,返回DOM根节点    print(html)    #path = //div[@class='billboard-bd']//td//a/text()
    for i in range(2,32):        #选择题题目        orders = html.xpath("/html/body/form/div[2]/div["+str(i)+"]/div[1]/text()")[0]        with open("D:/test2.txt","a+") as f:            f.write(orders)  # 自带文件关闭功能,不需要再写f.close()
打算爬取题目和答案,但网页需要打开之后点击下面的提交才会出现答案
用webdriver打开浏览器模拟点击之后,我才需要获取网页中的一些文本,但是使用request转换html获取又会重新打开网页,小弟不懂怎么自动打开网页,进行完模拟点击之后,在新的网页代码中获取文本
求大佬相助,不胜感激

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 16713720339 发表于 2022-12-10 22:30
啊,排版是乱的,再发一次
[Python] 纯文本查看 复制代码
from urllib.parse import urlencode
import requests
from lxml import etree
import re
import time
from selenium import webdriver

for uuu in range(1,11):
    if uuu!=10:
        uuu='0'+str(uuu)
    url = "http://www.henanjianan.com/tiku/dianhan/"+str(uuu)+".html"
    ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240"
    
    #点击模拟
    driver = webdriver.Edge()

    driver.get('http://www.henanjianan.com/tiku/dianhan/10.html')   #打开网页

    # driver.maximize_window()                      #最大化窗口

    time.sleep(10)                                   #加载等待

    driver.find_element_by_xpath("/html/body/form/div[5]/input").click()#点击按钮
    time.sleep(3)
    alertObject = driver.switch_to.alert
    print(alertObject.text)  # 打印提示信息
    time.sleep(1)
    alertObject.accept()  # 点击确定按钮

    r = requests.get(url)
    #r=
    r.encoding="utf-8"

    #获取网页的html,爬取文本
    content = r.text          #获取HTML的内容
    print(content)
    html = etree.HTML(content)  #分析HTML,返回DOM根节点
    print(html)
    #path = //div[@class='billboard-bd']//td//a/text()

    for i in range(2,32):
        #选择题题目
        orders = html.xpath("/html/body/form/div[2]/div["+str(i)+"]/div[1]/text()")[0]
        with open("D:/test2.txt","a+") as f:
            f.write(orders)  # 自带文件关闭功能,不需要再写f.close()




wanpojie 发表于 2022-12-10 22:48
Starrys 发表于 2022-12-10 23:05
没看懂你的意思 给你个小建议 driver = webdriver.Edge() 不要放到循环里 容易卡死或者说浪费内存
Starrys 发表于 2022-12-10 23:08
driver.close() 关闭当前页面
driver.quit()  退出浏览器
Starrys 发表于 2022-12-10 23:12
16713720339 发表于 2022-12-10 22:30
啊,排版是乱的,再发一次
[mw_shl_code=python,true]from urllib.parse import urlencode
import reques ...

看懂了  上面配置好url了  driver用的是固定的地址  所以不会打开新网页
17行改成driver.get(url)
hayreddin 发表于 2022-12-10 23:30
学习学习
繁华什锦 发表于 2022-12-10 23:42
学习学习。多谢分享,试一下
adx123456 发表于 2022-12-11 06:01
好好学习
cloud2010 发表于 2022-12-11 06:16

试试使用playwright,可以自动录制脚本

你在浏览器手动操作一遍,就能生成模拟操作的python代码

再修改或用于学习都很简单
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 05:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表