使用Mechanize Python隐藏HTML元素

雷达

因此,我正在编写一个Python脚本,用于检查Blackboard(学校界面网站)是否有更新。但是我从脚本中收到的HTML与在浏览器中查看时的HTML不完全相同。我不确定这是Cookie还是缺少的内容。

USERNAME = ''
PASSWORD = ''

updates = 0  
site = 'http://schoolsite.edu'

browser = mechanize.Browser()
browser.open(site)
browser.select_form(nr = 0)
browser.form['j_username'] = USERNAME
browser.form['j_password'] = PASSWORD
browser.submit()

#it brings back an empty form, just submit it.
browser.select_form(nr = 0)
browser.submit()

html_resp = browser.response().read()

有问题的HTML看起来像这样(来自脚本)

<span id="badgeTotal" style="visibility: hidden" title="">
<span class="hideoff" id="badgeAXLabel">Activity Updates</span>
<span class="badge" id="badgeTotalCount" title=""></span>

我所期望的外观(从Chrome /实际浏览器)

<span id="badgeTotal" style="visibility: visible;" title="">
<span class="hideoff" id="badgeAXLabel">Activity Updates</span>
<span class="badge" id="badgeTotalCount" title="">1</span>

我真正想知道的是最后一行中的数字“ 1”,但我感觉像能见度属性使它退缩了。请注意,我从Mechanize中获得的Cookie与在浏览器中获得的相同。(不完全相同,但ID,名称等相同)

有什么想法吗?

任何输入表示赞赏。

ec

可以肯定的是,涉及到 机械化无法处理的javascript

这里的替代解决方案是通过以下方式自动化真正的浏览器selenium

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()  # could also be headless: webdriver.PhantomJS()
driver.get('http://schoolsite.edu')

# submit a login form
username = driver.find_element_by_name('j_username')
password = driver.find_element_by_name('j_password')

username.send_keys(USERNAME)
password.send_keys(PASSWORD)

username.submit()

# wait for the badge count to appear
badge_count = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "badgeTotalCount")))

print(badge_count.text)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Ruby Mechanize通过<a>元素提交表单

来自分类Dev

使用Ruby Mechanize通过<a>元素提交表单

来自分类Dev

使用Mechanize(Python)填写表格

来自分类Dev

使用python Mechanize修复网页的字符编码

来自分类Dev

使用javascript隐藏html元素

来自分类Dev

使用javascript隐藏html元素

来自分类Dev

使用Beautifulsoup和Mechanize从元素解析href属性值

来自分类Dev

使用Mechanize和Python登录到堆栈溢出

来自分类Dev

如何在python中使用mechanize确定nr值

来自分类Dev

使用mechanize :: phantomjs选择单选按钮时,“高速缓存中不存在元素”错误

来自分类Dev

使用mechanize :: phantomjs选择单选按钮时,“高速缓存中不存在元素”错误

来自分类Dev

尝试使用Python Mechanize填充<td>标签中包含的搜索框

来自分类Dev

使用Mechanize修改表单

来自分类Dev

使用WWW :: Mechanize登录

来自分类Dev

使用ng-view(Angularjs)时隐藏某些HTML元素

来自分类Dev

如何使用条件语句显示/隐藏车把中的html元素

来自分类Dev

如何在HTML中使用href隐藏和显示元素

来自分类Dev

如何使用jQuery隐藏仅包含空格的HTML元素?

来自分类Dev

使用CSS隐藏HTML元素(如果其中包含特定文本)?

来自分类Dev

使用ng-view(Angularjs)时隐藏某些HTML元素

来自分类Dev

如何使用条件语句显示/隐藏车把中的html元素

来自分类Dev

如何使用复选框显示/隐藏HTML元素

来自分类Dev

无法隐藏我使用 javascript 和 jquery 生成的 html 元素

来自分类Dev

使用 Python 单击 HTML 元素

来自分类Dev

如何使用Selenium和Python在隐藏元素内上传图像

来自分类Dev

使用Selenium Python从隐藏元素中获取文本

来自分类Dev

通过执行javascript在python中使用selenium webdriver隐藏元素

来自分类Dev

使用CSS隐藏元素

来自分类Dev

抓取动态网页时,无法使用python mechanize从下拉列表中检索到任何值

Related 相关文章

  1. 1

    使用Ruby Mechanize通过<a>元素提交表单

  2. 2

    使用Ruby Mechanize通过<a>元素提交表单

  3. 3

    使用Mechanize(Python)填写表格

  4. 4

    使用python Mechanize修复网页的字符编码

  5. 5

    使用javascript隐藏html元素

  6. 6

    使用javascript隐藏html元素

  7. 7

    使用Beautifulsoup和Mechanize从元素解析href属性值

  8. 8

    使用Mechanize和Python登录到堆栈溢出

  9. 9

    如何在python中使用mechanize确定nr值

  10. 10

    使用mechanize :: phantomjs选择单选按钮时,“高速缓存中不存在元素”错误

  11. 11

    使用mechanize :: phantomjs选择单选按钮时,“高速缓存中不存在元素”错误

  12. 12

    尝试使用Python Mechanize填充<td>标签中包含的搜索框

  13. 13

    使用Mechanize修改表单

  14. 14

    使用WWW :: Mechanize登录

  15. 15

    使用ng-view(Angularjs)时隐藏某些HTML元素

  16. 16

    如何使用条件语句显示/隐藏车把中的html元素

  17. 17

    如何在HTML中使用href隐藏和显示元素

  18. 18

    如何使用jQuery隐藏仅包含空格的HTML元素?

  19. 19

    使用CSS隐藏HTML元素(如果其中包含特定文本)?

  20. 20

    使用ng-view(Angularjs)时隐藏某些HTML元素

  21. 21

    如何使用条件语句显示/隐藏车把中的html元素

  22. 22

    如何使用复选框显示/隐藏HTML元素

  23. 23

    无法隐藏我使用 javascript 和 jquery 生成的 html 元素

  24. 24

    使用 Python 单击 HTML 元素

  25. 25

    如何使用Selenium和Python在隐藏元素内上传图像

  26. 26

    使用Selenium Python从隐藏元素中获取文本

  27. 27

    通过执行javascript在python中使用selenium webdriver隐藏元素

  28. 28

    使用CSS隐藏元素

  29. 29

    抓取动态网页时,无法使用python mechanize从下拉列表中检索到任何值

热门标签

归档