python模拟python浏览器内核操作点击弹框

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
丰衣足食, 积分 705, 距离下一级还需 295 积分
论坛徽章:0
就是要实现onmousedown onmouseup的效果,有些网页的js设置onmousedown行为,我改怎么模拟?
家境小康, 积分 1046, 距离下一级还需 954 积分
论坛徽章:0
很久之前用过,记得好像要getElementByName或ById的或其他能得到元素标识的,然后向其发送信号。
家境小康, 积分 1046, 距离下一级还需 954 积分
论坛徽章:0
不过我当时不是ie,是用gtkmozembed.so的写的浏览器。科技需要真相和数据,立志成为最有范儿的测试人社区.
+ &&>>内容
+ 关于本文作者
我也很想让世界变得更美好,可是上帝却不开放源代码。
| 访问的主页
基于开源中国开发
最新文章热门文章随机文章
"Save Binary World"
使用合作网站账号快速登录,更多精彩等着您:您的浏览器不支持javascript,不能使用此页面的全部功能。
请换用其他浏览器或者开启对javascript的支持。
使用Python模拟浏览器登录并抓取数据:使用Mechanize和BeautifulSoup
By @黠之大者 (计算传播学小站编辑)通常的数据抓取遵循可见即可得的规律,即可以观察到的,就可以被抓取。但是,越来越多的现象是很多网站要求必须登录才能看到内容,这个时候就需要使用编程软件模拟浏览器登录。登录成功后,就可以抓取内容了。对于网页内容的抓取,可以是把整个网页都存下来,回头再清洗。这样做比较简单有效,但是还是回避不了之后的从html文件中进行的数据提取工作。本文是一个小例子,介绍使用mechanize模拟登陆以及使用BeautifulSoup提取数据的过程。mechanize是机械化的意思,搜索图片的话,满屏幕都是fear factor的图片。Fear factor第一步 使用mechanize模拟登陆这里举一个抓取聊天论坛帖子列表的例子。这个网站的为:, 我们首先写一个叫screen_login的函数。其核心是定义个浏览器对象br = mechanize.Browser()。这个时候,需要借用浏览器的cookie功能,主要借助于cookielib包。 为了从HTML文档提取cookies,首先使用cookielib模块的LWPCookieJar()函数创建一个cookie jar的实例。LWPCookieJar()函数将返回一个对象,该对象可以从硬盘加载Cookie,同时还能向硬盘存放Cookie。之后,通过 br.set_cookiejar(cj)将这个cookie jar关联到mechanize的浏览器对象br上。简单设置一些浏览器属性后,需要定义使用的user-agent。用户代理(User Agent)指的是代表使用者行为的软件,主要是设置浏览器的头文件。最后是关键的一步,打开登录页面,输入用户名和用户密码。需要使用br.select_form(nr = 0)来找到登录表格。这里nr的设置比较灵活,不同网站的数值不同。然后输入用户名和密码。比如:br['vb_login_username'] = 'Your registered User name', 这里的vb_login_username也会随着网站本身使用的具体内容而不同。# -*- coding: utf-8 -*-&&&Spyder Editor&&&import mechanizeimport cookielibfrom bs4 import BeautifulSoupfrom random import randintfrom time import sleepdef screen_login(): &&&&br = mechanize.Browser()&&&&cj = cookielib.LWPCookieJar()&&&&br.set_cookiejar(cj)&&&&# setting&&&&br.set_handle_equiv(True)&&&&br.set_handle_redirect(True)&&&&br.set_handle_referer(True)&&&&br.set_handle_robots(False)&&&&#
br.set_debug_http(True)&&&&# User-Agent (this is cheating, ok?) &&&&br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/ Chrome/17.0.963.56 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]&&&&# Follows refresh 0 but not hangs on refresh & 0
&&&&br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)&&&&# Open the login page&&&&br.open(')
&&&&br.select_form(nr = 0)
# Find the login form&&&&br['vb_login_username'] = 'Your registered User name'
# Set the form values&&&&br['vb_login_password'] = 'Your registered User password'&&&&br.submit()
# Submit the form&&&&return(br)第二步 使用BeautifulSoup提取数据之后运行br = screen_login()就可以模拟登录成功,然后就可以开始数据抓取工作了。对于讨论论坛而言,往往分很多页,需要定义一个total_page_num。我们这里想要得到每一个帖子的url和作者的url。这里对于BeautifulSoup的使用很简单,只要使用soup.find_all命令来定位帖子url和作者url就可以啦。# read datadef get_urls(total_page_num):&&&&urls = []&&&&profiles = []&&&&web_url = '&&&&for page_num in range(1, total_page_num + 1):&&&&&&&&browser = br.open( web_url + str(page_num) ) &&&&&&&&# '''sleep'''&&&&&&&&sleep(0.01*randint(1,7))&&&&&&&&print page_num&&&&&&&&# browser = br.open(')&&&&&&&&# parse data&&&&&&&&soup = BeautifulSoup(browser)&&&&&&&&titles = soup.find_all('a', {'class', 'title'}) &&&&&&&&users = soup.find_all('a', {'class', 'siteicon_profile'}) &&&&&&&&for i in range(len(titles)):&&&&&&&&&&&&title = titles[i]['href'] &&&&&&&&&&&&user = users[i]['href']&&&&&&&&&&&&title = ' + title&&&&&&&&&&&&profiles.append(user)&&&&&&&&&&&&urls.append(title)
&&&&&&&&&&&&print title&&&&return urls, profiles&&完成以上两步,就可以开始数据抓取了。首先模拟登录:
br = screen_login() &&&总共有41页需要抓取,那么就开始吧:thread_and_user = get_urls(41)
&thread_urls = thread_and_user[0]
user_profiles_all = thread_and_user[1]
推荐这篇日记的豆列
(峰哥Forza)
(学问思辨行)python模拟浏览器登陆_python吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:195,127贴子:
python模拟浏览器登陆收藏
谁来指导我一下python模拟浏览器登录啊能够获得登录后网页源码就可以,登录页面不需要验证码的那种。
贴一下我的代码#coding:utf-8import urllib2import urlliburl = ""headers = {
"POST":url,
"Host":"register.5211game.com",
"Origin":"",
"Referer":"",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31"
}postdata = {
"__VIEWSTATE":"/wEPDwUJMzQ5MzcyODQwZGTQBI8d6P0FtfETW++E31teQOfThw==",
"__EVENTVALIDATION":"/wEWBALv+OPMCQLB2tiHDgK1qbSWCwL07qXZBifT2Pr1NYfmEW2lS0RG/PDgKKMA",
"txtUser":"",
"txtPassWord":"000333aaa",
"butLogin":""
}postdata = urllib.urlencode(postdata)req = urllib2.Request(url,postdata,headers)
html = urllib2.urlopen(req).read()target = open('yaoyao.txt','w')target.truncate()target.write(html)target.close()
我只能得到登录页面的源码header数据和post的数据都是我从浏览器审查元素功能里弄的不知道那个requset方法用的对不对该怎么做呢 请大神指导一下
你的密码都不打算处理一下再发上来的么
楼主么么哒
我搞了下 发现搞不定。。我用别的语言也弄了下发现也是这样的。
你这么写当然是登陆页面的源码了,因为你的代码没有重定向的功能,正常登陆后浏览器会跳转的。。
所以你需要保存登陆成功后的COOKIE(或者使用python的cookiejar),然后在请求一次登陆成功后跳转的页面就可以获取源码了。
同楼上cookiejar
稍微加了几行cookie设置的代码就可以啦
楼主么么哒
cookes,我有个抓QQ空间的爬虫
看看我写的这篇文章就明白了,python3爬虫入门。如有哪里不好,还请不要见笑==
检查一下headers与浏览器上解析出来的是否完全一致,检查一下细节问题
登录百度帐号Python-web页面操作(模拟键盘上下键、回车)--部分浏览器不支持
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 python浏览器 的文章

 

随机推荐