请选择 进入手机版|继续访问电脑版
发新帖

请教关于用 selenium 解析网页的问题

[复制链接]
8424 13

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
from selenium import webdriver from selenium.webdriver.remote.webelement import WebElement   h=''' 下一页
'''  driver =webdriver.Chrome() driver.get(h)  #操作 1:读取 h 中的 small 标签,并显示其文本内容,期望的输出是:'下一页'  s=driver.find_element_by_xpath("//div[@class='page']//small")    #语句 1 print("s=",s.get_attribute('text')) #操作 2:定位 h 中文本内容为'下一页'的元素,期望定位到的元素应当是 small 标签。然后显示其文本内容,期望的输出是:'下一页'  pg=driver.find_element_by_xpath("//div[@page]//small[contains(text(),'下一页')]")     #语句 2 print("pg=",pg.get_attribute('text')) 上面的代码是用 selenium 来解析文本 h, 进行了两个操作,操作的目的如代码中的注释所示,但是两个操作都报错了,提示找不到元素。我的问题如下: 1、目前的代码是用 xpath 来解析,请问怎么写才是正确的? 2、我尝试不用 xpath,修改如下:    语句 1 修改为用 css 选择器   s=driver.find_element_by_css_selector('div.page>small')    语句 2 修改为    driver.find_element_by_link_text('下一页')    做了上述修改后还是一样找不到元素。恳请大家指点如果不用 xpath,例如用 css 选择器应该怎么写语句呢? 恳请指点,感谢!

举报 使用道具

回复

精彩评论13

openjerry  新手上路  发表于 2017-10-5 05:40:13 | 显示全部楼层
driver.get(h) 这句话看不懂。driver.get() 这个方法传的参数不应该是一个 URL 吗?

举报 使用道具

回复
saximi  新手上路  发表于 2017-10-5 07:34:15 | 显示全部楼层
@OpenJerry 是我搞错了,我的本意不是要测试某个网址,我只是希望对某一段 HTML 语法的解析进行分析,所以才用文档字符串来保存待分析的内容,我并不想传入整个 URL 作为参数,这样该怎么办呢

举报 使用道具

回复
kqz901002  新手上路  发表于 2017-10-5 17:56:12 | 显示全部楼层
@saximi python -m SimpleHTTPServer ...  driver.get("http://127.0.0.1/test.html")

举报 使用道具

回复
cszeus  新手上路  发表于 2017-10-6 08:59:30 | 显示全部楼层
只想分析 html,用 beautifulsoup 吧

举报 使用道具

回复
mlyy  新手上路  发表于 2017-10-6 19:10:21 | 显示全部楼层
lxml 好像也可以

举报 使用道具

回复
justtery  新手上路  发表于 2017-10-7 08:09:44 | 显示全部楼层
pyquery 在呼唤你

举报 使用道具

回复
marsss  新手上路  发表于 2017-10-7 12:56:37 | 显示全部楼层
把 target_url 写出来,正确答案马上就有了

举报 使用道具

回复
openjerry  新手上路  发表于 2017-10-7 17:36:43 | 显示全部楼层
@saximi 同意 4 楼,只是分析 HTML 的话推荐用 BeautifulSoup

举报 使用道具

回复
saximi  新手上路  发表于 2017-10-7 17:47:26 | 显示全部楼层
@kqz901002 请问这是什么包里的模块? 我用 SimpleHTTPServer 关键字在 pypi 上没找到这个包呢,谢谢了

举报 使用道具

回复
kqz901002  新手上路  发表于 2017-10-8 10:00:03 | 显示全部楼层
@saximi python2 内置

举报 使用道具

回复
yucongo  新手上路  发表于 2017-10-8 15:27:05 | 显示全部楼层
pyquery +1

举报 使用道具

回复
saximi  新手上路  发表于 2017-10-8 18:30:36 | 显示全部楼层
@kqz901002 谢谢,我是 PYTHON3,我试试看有没有

举报 使用道具

回复
kqz901002  新手上路  发表于 2017-10-8 19:26:49 | 显示全部楼层
@saximi python3 没有

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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