python输入文字点击按钮_使用python在网站上填写文本框,然后单击按钮下载

我可以想到两条路:

使用Selenium,您可以打开一个程序化的浏览器会话,并执行用户将要执行的所有操作。结合ghost浏览器,这可以在后台以独立于浏览器的方式完成(如果要在没有安装chrome的服务器上运行,这很有用)。

http://elementalselenium.com/tips/46-headless-ghostdriver

虽然一个很棒的库(非常适合测试web页面)Selenium需要学习很多东西。如果您特别希望执行填写和单击操作,则需要此选项。但是我认为有一种更简单的方法可以使用Python请求来完成您想要做的事情。

请求

Python的请求库是从页面请求数据的另一个库。您可以使用它提交GET请求(浏览器在访问页面时将执行的操作)或POST请求(在单击submit后浏览器将其表单数据发送到)。

要知道要将数据发送到哪些字段,请查看每个表单字段的页面HTML,并获取“name”属性。

如果不是因为你的内容似乎是付费的,你可以很容易地做到这一点。例如,假设您的表单有3个要填写的字段,其名称属性由“开始日期”、“结束日期”和“类型”组成。您可以通过以下方法完成此任务:import requests

url = http://www.barchart.com/historicaldata.php/

r = requests.post(url, data = {

'item1': 'one of the form fields',

'color': 'green',

'location': 'Boston, MA',

...

}

with open("~~DESIRED FILE LOCATION~~", "wb") as code:

code.write(r.content)

由于付费墙的存在,您必须首先登录并保留会话数据。我把怎么做的解释推迟到this excellent answer

编辑:

可能还有一件事需要注意,那就是你应该把你的数据提交到哪里。提交文章数据的url可能与您提供的条形图url相同,但也可能不同。要找到答案,请查看HTML表单对象本身的“action”属性。10次中有9次,这就是提交数据的地方。如果该站点使用Javascript做了一些不正常的事情,那么您可能需要打开一个控制台,并检查提交时数据的确切发送位置。但如果需要的话,那座桥可以过去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值