python訪問網站
Ⅰ 如何使用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 多線程 訪問網站
#python2
#coding=utf-8
importos,re,requests,sys,time,threading
reload(sys)
sys.setdefaultencoding('utf-8')
classArchives(object):
def__init__(self,url):
self.url=url
defsave_html(self,text):
fn='{}_{}'.format(int(time.time()),self.url.split('/')[-1])
dirname='htmls'
ifnotos.path.exists(dirname):
os.mkdir(dirname)
withopen(os.path.join(dirname,fn),'w')asf:
f.write(text)
defget_htmls(self):
try:
r=requests.get(self.url)
r.raise_for_status()
r.encoding=r.apparent_encoding
print'gethtmlfrom',url
self.save_html(r.text)
exceptException,e:
print'爬取失敗',e
defmain(self):
thread=threading.Thread(target=self.get_htmls())
thread.start()
thread.join()
if__name__=='__main__':
start=time.time()
fn=sys.argv[1]iflen(sys.argv)>1else'urls.txt'
withopen(fn)asf:
s=f.readlines()
forurlinset(s):
a=Archives(url.strip())
a.main()
end=time.time()
printend-start
Ⅳ 如何用python模擬登錄jsp網站
簡單說一下流程:先用cookielib獲取cookie,再用獲取到的cookie,進入需要登錄的網站。
01 # -*- coding: utf-8 -*-
02 # !/usr/bin/python
03
04 import urllib2
05 import urllib
06 import cookielib
07 import re
08
09 auth_url = 'http://www.nowamagic.net/'
10 home_url = 'http://www.nowamagic.net/';
11 # 登陸用戶名和密碼
12 data={
13 "username":"nowamagic",
14 "password":"pass"
15 }
16 # urllib進行編碼
17 post_data=urllib.urlencode(data)
18 # 發送頭信息
19 headers ={
20 "Host":"www.nowamagic.net",
21 "Referer": "http://www.nowamagic.net"
22 }
23 # 初始化一個CookieJar來處理Cookie
24 cookieJar=cookielib.CookieJar()
25 # 實例化一個全局opener
26 opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
27 # 獲取cookie
28 req=urllib2.Request(auth_url,post_data,headers)
29 result = opener.open(req)
30 # 訪問主頁 自動帶著cookie信息
31 result = opener.open(home_url)
32 # 顯示結果
33 print result.read()
再附帶幾個示常式序:
1. 使用已有的cookie訪問網站
01 import cookielib, urllib2
02
03 ckjar = cookielib.MozillaCookieJar(os.path.join('C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default', 'cookies.txt'))
04
05 req = urllib2.Request(url, postdata, header)
06
07 req.add_header('User-Agent', \
08 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
09
10 opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) )
11
12 f = opener.open(req)
13 htm = f.read()
14 f.close()
2. 訪問網站獲得cookie,並把獲得的cookie保存在cookie文件中
01 import cookielib, urllib2
02
03 req = urllib2.Request(url, postdata, header)
04 req.add_header('User-Agent', \
05 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
06
07 ckjar = cookielib.MozillaCookieJar(filename)
08 ckproc = urllib2.HTTPCookieProcessor(ckjar)
09
10 opener = urllib2.build_opener(ckproc)
11
12 f = opener.open(req)
13 htm = f.read()
14 f.close()
15
16 ckjar.save(ignore_discard=True, ignore_expires=True)
3. 使用指定的參數生成cookie,並用這個cookie訪問網站
01 import cookielib, urllib2
02
03 cookiejar = cookielib.CookieJar()
04 urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
05 values = {'redirect':", 'email':'[email protected]',
06 'password':'password', 'rememberme':", 'submit':'OK, Let Me In!'}
07 data = urllib.urlencode(values)
08
09 request = urllib2.Request(url, data)
10 url = urlOpener.open(request)
11 print url.info()
12 page = url.read()
13
14 request = urllib2.Request(url)
15 url = urlOpener.open(request)
16 page = url.read()
17 print page
Ⅳ Python爬蟲如何避免爬取網站訪問過於頻繁
一. 關於爬蟲
爬蟲,是一種按照一定的規則自動地抓取互聯網信息的程序。本質是利用程序獲取對我們有利的數據。
反爬蟲,從不是將爬蟲完全杜絕;而是想辦法將爬蟲的訪問量限制在一個可接納的范圍,不要讓它過於頻繁。
二. 提高爬蟲效率的方法
協程。採用協程,讓多個爬蟲一起工作,可以大幅度提高效率。
多進程。使用CPU的多個核,使用幾個核就能提高幾倍。
多線程。將任務分成多個,並發(交替)的執行。
分布式爬蟲。讓多個設備去跑同一個項目,效率也能大幅提升。
打包技術。可以將python文件打包成可執行的exe文件,讓其在後台執行即可。
其他。比如,使用網速好的網路等等。
三. 反爬蟲的措施
限制請求頭,即request header。解決方法:我們可以填寫user-agent聲明自己的身份,有時還要去填寫origin和referer聲明請求的來源。
限制登錄,即不登錄就不能訪問。解決方法:我們可以使用cookies和session的知識去模擬登錄。
復雜的交互,比如設置「驗證碼」來阻攔登錄。這就比較難做,解決方法1:我們用Selenium去手動輸入驗證碼;方法2:我們用一些圖像處理的庫自動識別驗證碼(tesserocr/pytesserart/pillow)。
ip限制。如果這個IP地址,爬取網站頻次太高,那麼伺服器就會暫時封掉來自這個IP地址的請求。 解決方法:使用time.sleep()來對爬蟲的速度進行限制,建立IP代理池或者使用IPIDEA避免IP被封禁。
Ⅵ 如何用python訪問網頁並在表單處輸入內容
我用過selenium模擬瀏覽器
使用selenium的chrome或firefox的webdriver打開瀏覽器
driver.get(url) #訪問你的網頁from=driver.find_elements_by_xpath("xxx")通過xpath或id等方法鎖定到網頁上表單的那個元素後,用
from.send_keys("xxx")來輸入內容
Ⅶ Python如何訪問網站不緩存
1、運行時加-u參數,如#python3-utest.py>>test.log&用man查看python的-u參數。
強制stdin,stdout和stderr完全不緩沖。
Python由荷蘭數學和計算機科學研究學會的吉多·范羅蘇姆於1990年代初設計,作為一門叫做ABC語言的替代品。
Ⅷ python3一個類如何訪問不同的網站
我們可以把這個類封裝一下後,然後入參url即可
Ⅸ python使用for循環,用不同參數訪問一個網站,返回結果都是第一次訪問時的結果
不用session去試一下啊。比如我們對自己的代碼做測試時,如果不是做壓測,就不公用session。直接用requests的post/get搞,session是在同一個會話,有些東西會保持,而這些,可能剛好就是需要更改而你漏掉的,直接用requests.post(),少什麼,就比較容易發現。