怎么用python抓取网页并实现一些提交操作?

简单来说就是我想做一个刷票器。想知道用什么库(httplib,urllib?),打开一个网页(urlopen?),获取验证码的图片(如何获取?不需要考虑识别),设置一些选... 简单来说就是我想做一个刷票器。
想知道用什么库(httplib,urllib?),打开一个网页(urlopen?),获取验证码的图片(如何获取?不需要考虑识别),设置一些选项(如选中某个选项,填入姓名,身份证号等),再提交投票(post?)
如果解答及时,视详细情况加分,解决问题追加100到300分。
可加QQ:187212263
百度没把我的问题显示出来。
现在考虑用cPAMIE或win32com.client,pythoncom模拟操作IE。基本问题已解决。还差图片的获取和提交。提交源代码如下:<input type="image" name="ImgBtnSubmit" id="ImgBtnSubmit" src="images/btn_01.jpg" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ImgBtnSubmit", "", true, "", "", false, false))" style="border-width:0px;" />
请问用cPAMIE如何模拟?
展开
 我来答
ddtghost
推荐于2016-03-28 · TA获得超过482个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:573万
展开全部
下面这个程序是抓取网页的一个例子,MyOpener类是为了模拟浏览器客户端,并采用随机选取的方式以防网站将你认为是机器人。
MyFunc函数抓取你指定的url,并提取了其中的href链接,图片的获取类似,一般是<img src=xxx>这样的形式,其他的功能应该也不难,去网上搜下应该有些例子。

import re
from urllib import FancyURLopener
from random import choice

user_agents = [
'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',
'Opera/9.25 (Windows NT 5.1; U; en)',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',
'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',
'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9'
]

class MyOpener(FancyURLopener, object):
version = choice(user_agents)

def MyFunc(url):
myopener = MyOpener()
s = myopener.open(url).read()
ss=s.replace("\n"," ")
urls=re.findall(r"<a.*?href=.*?<\/a>",ss,re.I)#寻找href链接
for i in urls:
do sth.
数阔八爪鱼采集器丨RPA机器人
2021-08-17 · 前往八爪鱼RPA应用市场,免费获取机器人
数阔八爪鱼采集器丨RPA机器人
向TA提问
展开全部
首先我们找到登录的元素,在输入账号处选中–>右键–>检查

然后直接查询网页源代码去找到上面的部分,根据标签来观察提交的表单参数,这里强调一下:

form标签和form标签下的input标签非常重要,form标签中的action属性代表请求的URL,input标签下的name属性代表提交参数的KEY。
代码参考如下:
import requests
url="网址" #action属性
params={
"source":"index_nav", #input标签下的name
"form_email":"xxxxxx", #input标签下的name
"form_password":"xxxxxx" #input标签下的name

}
html=requests.post(url,data=params)
print(html.text)

运行后发现已登录账号,相当于一个提交登陆的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
king6o60
2009-10-20 · TA获得超过872个赞
知道小有建树答主
回答量:1356
采纳率:0%
帮助的人:938万
展开全部
urllib2而已。eazy.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式