把东西贴到网上

2024-09-28 16:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个程序,写一些东西到文本框中的html(例如谷歌搜索栏)。但我不知道在urllib里怎么做。这就是它需要做的: 1-拿到书页,找到盒子。 在盒子里写些东西。 3-发布并给出结果。你知道吗

我只想要一个如何找到盒子和张贴它的例子,没有完整的代码。你知道吗

从现在开始谢谢大家。你知道吗


Tags: 代码程序htmlurllib例子盒子文本框书页
1条回答
网友
1楼 · 发布于 2024-09-28 16:21:37

我将描述如何使用urllib来实现这一点,但下面您将找到我推荐的其他库来解决您的问题。你知道吗

如果使用urllib,则必须查看form action属性才能对POST请求进行反向工程。然后,使用此代码,您可以复制该帖子:

import urllib
import urllib2

url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()

源代码:This answer

正如我提到的,对于这个问题,urllib有一个更简单的替代方法。我个人建议您使用RoboBrowserMechanicalSoup。他们更直截了当,因为他们会为你找出职位要求。你知道吗

使用RoboBrowser的示例:

# Browse to the website
browser = RoboBrowser()
browser.open('http://website.com/')

# Find the form, write on a text box, and submit it
form = browser.get_form(action='/search')
form['q'].value = 'your text'
browser.submit_form(form)

唯一的问题是,它们并不适用于所有网站,尤其是动态网站。因此,如果这些解决方案不起作用,一个很好的解决方法是使用Selenium。Selenium自动化了一个真正的浏览器,因此它将加载网站的所有动态部分(比如Javascript)。问题是执行自己的请求比较慢,所以我建议在尝试Selenium之前使用RoboBrowser或MechanicalSoup。你知道吗

相关问题 更多 >