python进行模拟操作之后获取网页文本数据
from urllib.parse import urlencodeimport requestsfrom lxml import etreeimport reimport timefrom selenium import webdriverfor 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/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/div["+str(i)+"]/div/text()")[0] with open("D:/test2.txt","a+") as f: f.write(orders)# 自带文件关闭功能,不需要再写f.close()
打算爬取题目和答案,但网页需要打开之后点击下面的提交才会出现答案
用webdriver打开浏览器模拟点击之后,我才需要获取网页中的一些文本,但是使用request转换html获取又会重新打开网页,小弟不懂怎么自动打开网页,进行完模拟点击之后,在新的网页代码中获取文本
求大佬相助,不胜感激 啊,排版是乱的,再发一次
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/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/div["+str(i)+"]/div/text()")
with open("D:/test2.txt","a+") as f:
f.write(orders)# 自带文件关闭功能,不需要再写f.close()
http://www.henanjianan.com/tiku/dianhan/1.html打不开 没看懂你的意思 给你个小建议 driver = webdriver.Edge() 不要放到循环里 容易卡死或者说浪费内存 driver.close() 关闭当前页面
driver.quit()退出浏览器 16713720339 发表于 2022-12-10 22:30
啊,排版是乱的,再发一次
from urllib.parse import urlencode
import reques ...
看懂了上面配置好url了driver用的是固定的地址所以不会打开新网页
17行改成driver.get(url) 学习学习 学习学习。多谢分享,试一下 好好学习
试试使用playwright,可以自动录制脚本
你在浏览器手动操作一遍,就能生成模拟操作的python代码
再修改或用于学习都很简单
页:
[1]
2