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()