python操作网页
① 想用python编写一个脚本,登录网页,在网页里做一系列操作,应该怎样实现
python编写一个脚本的腊厅具体操作:
1、首先,打开python并创建一个新的PY文件。
② 怎么用python简单的制作一个网页
1、打开sublime text 3,新建一个PY文件。
③ 如何用Python关闭打开的网页
2、能够调用操作系统的命令关闭浏览器
window命令是:taskkill /F/IM 应用名称 ,如 taskkill /F /IM qq.exe 就关闭了qq
linux 命令是:killall(kill不建议使用) /F /IM qq.exe
python实现代码如下:
import os
os.system('taskkill /F /IM qq.exe')
#linux中:os.system('killall /F /IM qq.exe')
3、实现打开网页?次和关闭网页?次,以及打开?次网页后才关闭网页
python实现代码打开10次网页后关闭一次,一下实现打开最少(10*count)次:
import webBrowe as web
import time
import os
import urllib
import random
#产生随机数范围:[1,9)
count=random.randint(1,10)
#定义变量控制循环结束
j=0
while j<=count :
#定义第count次打开次数
i=0
#打开浏览器的控制
while i<=9 :
#打开浏览器
web.open_new_tab("需要打开的地址")
#控制循环次数
i+=1
#留给浏览器反应时间:0.8s
time.sleep(0.8)
else :
#杀死程序,我使用的是360浏览器打开
os.system('taskkill /F /IM 360se.exe')
#控制外层循环
j+=1
注意:本文举例是基于python 2.7版本,开发工具使用pycharm,
如果是python3.0以上版本可能不支持,部分方法需要稍微修改
④ python 实现 在已打开的页面操作
1、要重写Remote类,防止session重建,如下:
class ReuseChrome(Remote):
def __init__(self, command_executor, session_id):
self.r_session_id= session_id
Remote.__init__(self, command_executor=command_executor, desired_capabilities={})
def start_session(self, capabilities, browser_profile=None):
if not isinstance(capabilities, dict):
raise InvalidArgumentException("Capabilities must be a dictionary")
if browser_profile:
if "moz:firefoxOptions" in capabilities:
冲团桥 capabilities["moz:firefoxOptions"]["profile"] = browser_profile.encoded
else:
capabilities.update({'firefox_profile': browser_profile.encoded})
散猛 self.capabilities= options.Options().to_capabilities()
self.session_id= self.r_session_id
self.w3c= False
2、或袭访问已打开页面方式:
dr= ReuseChrome(command_executor=old_curl, session_id=sessionid)
其中old_curl需在原来打开的页面上获取:
old_curl=dr.command_executor._url #一定要用这个方法,获取当前地址是行不通的!
sessionid=dr.session_id
⑤ python如何操作已经在浏览器中打开的网页
使用selenium的chrome或firefox的webdriver打开浏览器
driver.get(url)
#访问你的网页
from=driver.find_elements_by_xpath("xxx")
通过xpath或id等方法锁定到网页上表单的那个元素后,用
from.send_keys("xxx")
⑥ 如何使用Python加载网站所有页面
python 打开浏览器,可以做简单的刷网页的小程序。仅供学习,别用非法用途。
python的webbrowser模块支持对浏览器进行一些操作,主要有以下三个方法:
复制代码代码如下:
webbrowser.open(url, new=0, autoraise=True)
webbrowser.open_new(url)
webbrowser.open_new_tab(url)
我们需要了解webbrowser.open()方法:
复制代码代码如下:
webbrowser.open(url, new=0, autoraise=True)
在系统的默认浏览器中访问url地址,如果new=0,url会在同一个
浏览器窗口中打开;如果new=1,新的浏览器窗口会被打开;new=2
新的浏览器tab会被打开。
而webbrowser.get()方法可以获取到系统浏览器的操作对象。
webbrowser.register()方法可以注册浏览器类型,而允许被注册的类型名称如下:
复制代码代码如下:
Type Name Class Name Notes
'mozilla' Mozilla('mozilla')
'firefox' Mozilla('mozilla')
'netscape' Mozilla('netscape')
'galeon' Galeon('galeon')
'epiphany' Galeon('epiphany')
'skipstone' BackgroundBrowser('skipstone')
'kfmclient' Konqueror() (1)
'konqueror' Konqueror() (1)
'kfm' Konqueror() (1)
'mosaic' BackgroundBrowser('mosaic')
'opera' Opera()
'grail' Grail()
'links' GenericBrowser('links')
'elinks' Elinks('elinks')
'lynx' GenericBrowser('lynx')
'w3m' GenericBrowser('w3m')
'windows-default' WindowsDefault (2)
'macosx' MacOSX('default') (3)
'safari' MacOSX('safari') (3)
'google-chrome' Chrome('google-chrome')
'chrome' Chrome('chrome')
'chromium' Chromium('chromium')
'chromium-browser' Chromium('chromium-browser')
DEMO:
复制代码代码如下:
#!/usr/bin/env python
#-*- coding:UTF-8 -*-
import sys
import webbrowser
sys.path.append("libs")
url = 'httu.com'
webbrowser.open(url)
print webbrowser.get()
⑦ python3.6怎么访问网页
使用Python访问网页主要有三种方式: urllib, urllib2, httplib
urllib比较简单,功能相对也比较弱,httplib简单强大,但好像不支持session
1. 最简单的页面访问
res=urllib2.urlopen(url)
print res.read()
2. 加上要get或post的数据
data={"name":"hank", "passwd":"hjz"}
urllib2.urlopen(url, urllib.urlencode(data))
3. 加上http头
header={"User-Agent": "Mozilla-Firefox5.0"}
urllib2.urlopen(url, urllib.urlencode(data), header)使用opener和handler
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
4. 加上session
cj = cookielib.CookieJar()
cjhandler=urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cjhandler)
urllib2.install_opener(opener)
5. 加上Basic认证
password_mgr = urllib2.()
top_level_url = "http://www.163.com/"
password_mgr.add_password(None, top_level_url, username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
6. 使用代理
proxy_support = urllib2.ProxyHandler({"http":"http://1.2.3.4:3128/"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
7. 设置超时
socket.setdefaulttimeout(5)
⑧ Python网页解析库:用requests-html爬取网页
Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍 BeautifulSoup 这个库,我平常也是常用这个库,最近用 Xpath 用得比较多,使用 BeautifulSoup 就不大习惯,很久之前就知道 Reitz 大神出了一个叫 Requests-HTML 的库,一直没有兴趣看,这回可算歹着机会用一下了。
使用 pip install requests-html 安装,上手和 Reitz 的其他库一样,轻松简单:
这个库是在 requests 库上实现的,r 得到的结果是 Response 对象下面的一个子类,多个一个 html 的属性。所以 requests 库的响应对象可以进行什么操作,这个 r 也都可以。如果需要解析网页,直接获取响应对象的 html 属性:
不得不膜拜 Reitz 大神太会组装技术了。实际上 HTMLSession 是继承自 requests.Session 这个核心类,然后将 requests.Session 类里的 requests 方法改写,返回自己的一个 HTMLResponse 对象,这个类又是继承自 requests.Response,只是多加了一个 _from_response 的方法来构造实例:
之后在 HTMLResponse 里定义属性方法 html,就可以通过 html 属性访问了,实现也就是组装 PyQuery 来干。核心的解析类也大多是使用 PyQuery 和 lxml 来做解析,简化了名称,挺讨巧的。
元素定位可以选择两种方式:
方法名非常简单,符合 Python 优雅的风格,这里不妨对这两种方式简单的说明:
定位到元素以后势必要获取元素里面的内容和属性相关数据,获取文本:
获取元素的属性:
还可以通过模式来匹配对应的内容:
这个功能看起来比较鸡肋,可以深入研究优化一下,说不定能在 github 上混个提交。
除了一些基础操作,这个库还提供了一些人性化的操作。比如一键获取网页的所有超链接,这对于整站爬虫应该是个福音,URL 管理比较方便:
内容页面通常都是分页的,一次抓取不了太多,这个库可以获取分页信息:
结果如下:
通过迭代器实现了智能发现分页,这个迭代器里面会用一个叫 _next 的方法,贴一段源码感受下:
通过查找 a 标签里面是否含有指定的文本来判断是不是有下一页,通常我们的下一页都会通过 下一页 或者 加载更多 来引导,他就是利用这个标志来进行判断。默认的以列表形式存在全局: ['next','more','older'] 。我个人认为这种方式非常不灵活,几乎没有扩展性。 感兴趣的可以往 github 上提交代码优化。
也许是考虑到了现在 js 的一些异步加载,这个库支持 js 运行时,官方说明如下:
使用非常简单,直接调用以下方法:
第一次使用的时候会下载 Chromium,不过国内你懂的,自己想办法去下吧,就不要等它自己下载了。render 函数可以使用 js 脚本来操作页面,滚动操作单独做了参数。这对于上拉加载等新式页面是非常友好的。
⑨ (web开发)用python创建一个最简单的网站
本文,用python来创建一个最简单的网页。
1先定返洞义一个函数,用来向网站服务器发送请求:defyingyong(environ,start_response):start_response(餠OK',[('Content-Type','text/html')])return[b'<h1>HowAre!</h1>']要求网站在网页上显示粗体的HowAre!
2导入wsgi模块的子模块,用来创建服务器。fromwsgiref.simple_serverimportmake_server。
3创建服务器,IP为空,端口号为900。a=900httpd=make_server('',a,yingyong)这个服务器将调用前面的函数yingyong。
4让服务器开始运行,并长时间运行。httpd.serve_forever()forever,让服务器永远运行,除非服务器被迫关闭。服务器在哪里?就在python里面,关闭python编译器,就等于关闭了服唤世模务器。
5再访问步骤一里面的链接,就得到如下网页。这说明服务器开始运行了。刷新这个网页,就相当于重复访问这个网页。每访问一次(刷新一次),都会向服务器发送请求,在python编译器里面会有所体现。
6关闭python编译器,服务器也就关闭了,这个网页会立刻崩溃。再打开python并运行这段代码,这个网页又会立刻恢复。完整代码如下:defyingyong(environ,start_response):start_response(餠OK',[('Content-Type','text/html')])return[b'<h1>HowAre!</h1>']fromwsgiref.simple_serverimportmake_servera=900httpd=make_server('',a,yingyong)httpd.serve_forever()。
1、开始之前,请先用浏览器访问下面这个网页:l')])
return[b'<h1>HowAre!</h1>']
要求网站在网页上显示粗体的HowAre!
3、导入wsgi模块的子模块,用来创建服务器。
fromwsgiref.simple_serverimportmake_server
4、创建服务器,IP为空,端口号为900。和缓
a=900
httpd=make_server('',a,yingyong)
这个服务器将调用前面的函数yingyong。
5、让服务器开始运行,并长时间运行。
httpd.serve_forever()
forever,让服务器永远运行,除非服务器被迫关闭。
服务器在哪里?就在python里面,关闭python编译器,就等于关闭了服务器。
6、再访问步骤一里面的链接,就得到如下网页,这说明服务器开始运行了。
7、刷新这个网页,就相当于重复访问这个网页,每访问一次(刷新一次),都会向服务器发送请求,在python编译器里面会有所体现。
8、关闭python编译器,服务器也就关闭了,这个网页会立刻崩溃。
再打开python并运行这段代码,这个网页又会立刻恢复。
完整代码如下:
defyingyong(environ,start_response):
start_response(餠OK',[('Content-Type','text/html')])
return[b'<h1>HowAre!</h1>']
fromwsgiref.simple_serverimportmake_server
a=900
httpd=make_server('',a,yingyong)
httpd.serve_forever()
⑩ 如何利用Python自动完成对网页平台上可点击的元素操作,用什么模块,具体函数有哪些,请大神指教
用selenium就可以了,它模拟打开浏览器,打开网页。
通过页面元素的特征,定位到要点击的元素,click()方法就可以完成点击
比如
self.driver.find_element_by_xpath('//ul[@class="uhomeTagList-ul"]/li[2]').click()