Python将NIH网站上的提交按钮机械化
我正在使用Python 2.7.3上的机械化.我正在寻求帮助点击 NIH的基因网站的帮助. 该按钮是一个实际按钮元素,该按钮元素被DIV所包围,而不是在任何表单字段中. Search 到目前为止,在示例中,我在网上看到的内容,提交按钮通常具有一个名称或标签,该名称可以选择或以形式选择或以形式,因此我可以做br.submit(). 我将如何在此提交? 谢谢 解决方案 该按钮不会直接提交,而是触发Javascriptevent,最终将加载搜索页面.这说明了该按钮在您的浏览器中即使不在表单内部也可以在您的浏览器中工作. mechanize无法运行JS代码,因此您将无法使用mechanize. 直接"单击"按钮 有原因您不能只是打开目标URL吗?这些似乎很简单,即使是在高级搜索表上,例如:
0 2024-04-05
编程技术问答社区
用python点击在线js按钮
我正在尝试单击 http://wwww.priceline.com/中的"搜索所有航班"按钮但是我有一些问题. 我知道机械化不适用于JavaScript,因此我尝试了一下源代码尝试执行该按钮的操作,但找不到该功能. 还有其他方法可以做吗? 解决方案 我建议使用selenium(下载链接)支持JavaScript. 在这里所有文档. 这是一个可以做到这一点的快速示例: from selenium import webdriver driver = webdriver.Firefox() driver.get("http://www.priceline.com/") driver.find_element_by_id("hotel-btn-submit-retl").click() driver.close() 其他解决方案 selenium 或类似的库将最适合您.它采用完整的浏览器(Firefox,Chrome等),并为您提供可编程的API.
0 2024-04-05
编程技术问答社区
机械化python点击一个按钮
我有一个带有按钮的表格,希望能够单击它. 我尝试了mech.form.click("submit"),但这给出了以下错误: ControlNotFoundError: no control matching kind 'clickable', id 'submit' mech.submit()也不起作用,因为它的类型是按钮而不提交. 有什么想法吗?谢谢. 解决方案 在纯HTML 表单中单击type="button"表单什么都不做.为了做任何事情,必须涉及 javascript . 和mechanize不运行 javascript . 您的选择是: 亲自阅读JavaScript,并使用mechanize模拟它将做什么 使用 spidermonkey 运行Javascript代码 我会做第一个,因为使用spidermonkey似乎很难,可能不值得. 其他解
0 2024-04-05
编程技术问答社区
用Watir将多个文件传递给输入节点(使用Ruby)。
所以我打了一点障碍.我正在尝试自动化一个测试用例,其中我需要将多个文件传递到输入节点,而我无法弄清楚如何做.我可以使用机械化或WATIR,但是很少发现有关一个主题的信息,该主题似乎相对较为重要.在下面的摘要中,我将Watir与Ruby一起使用.我遇到的主要问题是,当选择多个文件时,输入节点看来不再可见.输入节点确实接受了多个文件,并且通过单个路径传递确实会导致成功上传. path1 = "/path/to/file.json" file_field.set path1 我认为传递多个文件就像在字符串中传递的多个路径一样简单.但是,我对Web开发人员并不特别精明,并且很难掌握我应该从哪里开始.当我尝试传递多个文件时: multiple_paths = ("/path/to/file1.json"; "/path/to/file2.json") file_field.set multiple_paths 它允许上传第二个文件,但不是第一个文件(让我认为它是按顺序上传,而第
0 2024-04-04
编程技术问答社区
在Python Mechanize中按下提交按钮的结果如下
因此,我有一个经过机械化模块访问的身份验证网站.我可以登录,然后转到我想要的页面.但是,由于该页面识别机械化没有启用JavaScript,因此它希望我单击一个提交按钮以重定向到网站的非JavaScript部分.如何单击按钮,然后读取以下页面的内容? 或者,有没有办法欺骗它来思考我的javaScript是启用的? 谢谢! 解决方案 如果该提交按钮实际上是表格的提交输入元素,并且重定向像往常一样工作提交操作,并且前提是它是页面中唯一的表单,则您的机械化浏览器实例为br,以下应该有效 br.select_form(nr=0) # select the first form br.submit() afaik,没有简单或中等的方法,如何在机械化中模拟JavaScript,可能的解决方法取决于JavaScript的确切做法
0 2024-04-04
编程技术问答社区
Python使用webbrowser、urllib和CookieJar进行认证并启动私人页面
我想使用cookiejar登录,而不是启动登录页面,而是只能在身份验证后看到的页面.我知道机械化是这样做的,但是除了现在不为我工作,我还是宁愿没有它来做到这一点.现在我有, import urllib, urllib2, cookielib, webbrowser from cookielib import CookieJar username = 'my_username' password = 'my_password' url = 'my_login_page' cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode({'my_username' : username, 'my_password' : password}) opener.open(url, login_data) page_
2 2024-04-03
编程技术问答社区
使用JavaScript的程序化Python浏览器
我想筛选使用JavaScript的网站. 有 解决方案 您最好使用 selenium 使用Web浏览器自动刮擦,因此JS执行和页面呈现,就像对真实用户一样. 其他解决方案 pyv8 package packagence y s http Google的V8 JavaScript引擎 for Python.这特别好,因为您不仅可以调用从Python到JavaScript代码,而且可以从JavaScript回电到Python代码.这使得实现通常的浏览器填充对象(即JavaScript全局名称空间:"窗口","文档"等)非常简单JavaScript可容纳Python浏览器仿真器,可能是通过与机械化>机械化> . 其他解决方案 我最喜欢的是 pyphantomjs .它是使用Python和Pyqt4编写的.它是完全无头的,您可以从JavaScript完全控制它. 但是,如果您想实际查看页面,也可以从pyqt4中使用QWebView.
0 2024-04-03
编程技术问答社区
机械化和Javascript
我想使用机械化来模拟使用Active JavaScript的网页浏览,包括DOM事件和Ajax,到目前为止,我没有找到这样做的方法. 我查看了一些支持Spynner和Zope之类的JavaScript的Python客户端浏览器,它们都不对我有用. Spynner一直崩溃Pyqt,Zope不支持JavaScript. 是否有一种方法可以模拟仅使用Python(没有额外的过程)(例如Watir)或操纵Firefox或Internet Explorer的库,同时完全支持JavaScript,同时像实际浏览页面一样? ? 解决方案 我已经玩过这种新的替代方法(我喜欢的),称为 phantom JS . 这是一个完整的Web套件浏览器,例如Safari或Chrome,但无头和脚本化.您用javaScript而不是python脚本(据我所知). 有一些示例脚本可以让您入门.这很像使用firebug.我只用了几分钟的时间使用它,但是我发现从一开始就很有生产力. 其他
0 2024-04-03
编程技术问答社区
如何用python刮取aspx页面
我正在尝试刮擦一个站点, https://www.searchiqs.com/nybro/nybro/nybro/(您必须单击"登录作为访客"才能获取搜索表格.如果我搜索派对1个术语,例如Say" Andrew",结果有分页,并且请求类型是发布的,因此URL不会更改和会话很快.因此,如果我等待十分钟并刷新搜索URL页面,就会给我一个超时错误. 我最近开始刮擦,所以我主要是在做帖子,可以解读URL.到目前为止,我已经意识到我将不得不看DOM.使用Chrome工具,我找到了标头.从"网络"选项卡中,我还发现以下内容是从搜索页面到结果页面传递的表单数据 __EVENTTARGET: __EVENTARGUMENT: __LASTFOCUS: __VIEWSTATE:/wEPaA8FDzhkM2IyZjUwNzg...(i have truncated this for length) __VIEWSTATEGENERATOR:F92D01D0 __EVENTVALIDATION:/
0 2024-03-30
编程技术问答社区
我应该用什么纯Python库来搜刮网站?
我目前有一些Ruby代码用于刮擦一些网站.我之所以使用Ruby,是因为当时我在轨道上使用Ruby作为站点,这很有意义. 现在,我正在尝试将其移植到Google App Engine上,并不断卡住. 我已经将Python机械化用于使用Google App Engine,但它不支持XPATH的DOM检查. 我已经尝试了内置的元素树,但是当它遇到'&mdash'时,它在第一个html斑点上cho住了. 我是否一直在尝试在其中破解元素,还是尝试使用其他东西? 谢谢 标记 解决方案 美丽的汤. 其他解决方案 lxml-比ElementTree好100倍 其他解决方案 也有
0 2024-03-30
编程技术问答社区
用python登录instagram时出错
我正在尝试使用ArgParse通过Python脚本登录我的Instagram.它似乎是连接的,但它打印出" 无法加载此页面.如果您在浏览器中禁用了cookie,oryou oryou却在私有模式下浏览,请尝试启用cookie或关闭私有模式,然后重试操作,然后重试." 这是我的代码: import argparse import mechanicalsoup from bs4 import BeautifulSoup parser = argparse.ArgumentParser(description='Login to Instagram.') parser.add_argument("username") parser.add_argument("password") args = parser.parse_args() browser = mechanicalsoup.Browser() login_page = browser.get("https://instag
2 2024-03-30
编程技术问答社区
BeautifulSoup不能提取所有的HTML
我们正在尝试从Forever 21网站的此页面获取产品URL(from bs4 import BeautifulSoup import urllib import urllib2 import requests #driver = webdriver.Firefox() url = "http://www.forever21.com/Product/Category.aspx?br=f21&category=dress&pagesize=100&page=1" #r = driver.get(url) #html = r.read() #headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} #html = requests.get(url, hea
2 2024-03-30
编程技术问答社区
beautifulsoup 和 mechanize 获取ajax调用结果
嗨,我使用python 2.5和美丽的小组建造刮板 但是我在一个问题上……网页的一部分正在生成 用户单击某些按钮后,通过使用适当的参数调用特定的Javacsript函数来启动AJAX请求 有没有办法模拟用户互动并获得此结果?我遇到了一个机械化模块,但在我看来,这主要用于与表格一起使用... 我感谢任何链接或某些代码示例 谢谢 解决方案 好吧,我已经弄清楚了...我意识到可以使用Urllib,Ulrlib2和Beautifulsoup 的组合很简单 import urllib, urllib2 from BeautifulSoup import BeautifulSoup as bs_parse data = urllib.urlencode(values) req = urllib2.Request(url, data) res = urllib2.urlopen(req) page = bs_parse(res.read()) 其他解决方案 不,您不
2 2024-03-30
编程技术问答社区
如果浏览器不支持框架+不能直接访问框架,如何自动获得框架的内容?
我正在尝试从URL自动下载pdfs,例如 this 制作一个联合国决议的库. 如果我使用美丽的汤或机械化来打开该URL,我会得到"您的浏览器不支持帧" - 如果我在Chrome Dev Tools中使用副本作为Curl功能,我会得到同样的东西. 使用机械化或美丽的汤时,"您的浏览器不支持框架"的标准建议是遵循每个框架的来源并加载该框架.但是,如果这样做,我会遇到一条错误消息,即该页面不是授权. 我该如何继续?我想我可以在僵尸或幻影中尝试一下,但我希望不使用这些工具,因为我对它们不太熟悉. 解决方案 好吧,这是一个有趣的任务,与有一组对un.org和daccess-ods.un.org的基础调用非常重要,并设置了相关的cookie.这就是为什么您需要维护 requests.Session() 并在访问PDF之前访问几个URL. 这是完整的代码: import re from urlparse import urljoin from bs4 impor
0 2024-03-30
编程技术问答社区
"模块对象不可调用 "是什么意思?
我正在使用机械化的.get_data()方法,它似乎打印出我想要的HTML.我还检查了它打印出的类型,并且类型为" str". 但是,当我尝试用美丽的小组解析str时,我会收到以下错误: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in () 7 html = get_html(first[i],last[i]) 8 print type(html) ----> 9 print parse_page(html) 10 # l_to_store.append(parse_pag
0 2024-03-30
编程技术问答社区
如何使用美丽的汤去到下一页?
我必须从网站5页中提取信息. 在每个页面的末尾都有"下一页"按钮.这是下一个按钮的HTML代码 - ::before 我正在使用BeautifulSoup4提取信息.如何导航到下一页. 我可以使用机械设备导航 解决方案 您可以模仿帖子搜索/,但一种简单得多的方法是从第一页中获取页面总数,然后在范围2中循环到页数.将所有添加到启动URL的&page = page_number : import requests from bs4 import BeautifulSoup start = "https://colle
0 2024-03-30
编程技术问答社区
HTTP错误999。请求被拒绝
我正在尝试使用BeautifulSoup从LinkedIn刮擦一些网页,并且我一直遇到错误" HTTP错误999:请求拒绝".有没有办法避免此错误.如果您查看我的代码,我已经尝试了机械化和URLLIB2,并且两个都给了我同样的错误. from __future__ import unicode_literals from bs4 import BeautifulSoup import urllib2 import csv import os import re import requests import pandas as pd import urlparse import urllib import urllib2 from BeautifulSoup import BeautifulSoup from BeautifulSoup import BeautifulStoneSoup import urllib import urlparse import pdb import
2 2024-03-30
编程技术问答社区
BeautifulSoup的HTML表格解析
我正在尝试从此网站解析信息(html表):目前,我正在使用美丽的套件和我看起来像这样的代码 from mechanize import Browser from BeautifulSoup import BeautifulSoup mech = Browser() url = "http://www.511virginia.org/RoadConditions.aspx?j=All&r=1" page = mech.open(url) html = page.read() soup = BeautifulSoup(html) table = soup.find("table") rows = table.findAll('tr')[3] cols = rows.findAll('td') roadtype = cols[0].string start = cols.[1].string end = cols[2].string condition = cols[3].
2 2024-03-30
编程技术问答社区
Mechanize和BeautifulSoup for PHP?
我想知道是否有类似的东西,例如机械化或美丽的php? 解决方案 SimpleTest为您提供类似的功能: 其他解决方案 我不知道美丽的人有多强大,所以也许这不会那么出色.但是您可以尝试使用 DOMDocument::loadHTML : 函数解析HTML包含 在字符串源中.与加载不同 XML,HTML不必是 良好的负载. 使用此信息后,您应该能够使用DOM方法访问HTML文档 - 包括XPATH查询.
4 2024-03-30
编程技术问答社区
刮屏:绕过 "HTTP错误403:robots.txt不允许的请求"。
有没有办法解决以下方法? httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt 是与网站所有者联系(barnesandnoble.com)的唯一方法.我正在建立一个网站,可以为他们带来更多销售,不确定为什么他们会拒绝以一定深度的访问. 我在Python2.6上使用Mechanizize和Beautifulsoup. 希望有工作 解决方案 ,如果您想与Barnes&Noble遇到法律上的麻烦,可以尝试撒谎(例如,试图使自己成为人类而不是机器人).为什么不与他们的业务发展部保持联系并说服他们具体授权您呢?毫无疑问,他们只是试图避免被某些类别的机器人(例如价格比较引擎)刮擦的网站,如果您能说服他们自己不是一个,签订合同等,他们很可能愿意您的例外. 一种"技术"解决方法,它只是在Robots.txt中打破其政策.TXT是一种我永远不会推荐的高法律风险方法.顺便说一句,如
0 2024-03-30
编程技术问答社区