當前位置:首頁 » 編程語言 » python訪問網頁

python訪問網頁

發布時間: 2022-05-14 16:20:01

A. 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)

B. Python如何訪問網站不緩存

1、運行時加-u參數,如#python3-utest.py>>test.log&用man查看python的-u參數。
強制stdin,stdout和stderr完全不緩沖。
Python由荷蘭數學和計算機科學研究學會的吉多·范羅蘇姆於1990年代初設計,作為一門叫做ABC語言的替代品。

C. 使用python是否能打開網頁

可以啊,不僅可以打開,還可以將網頁的內容爬取下來

下面這段代碼就可以實現:

importurllib.request

#網址
url="http://www..com/"

#請求
request=urllib.request.Request(url)

#爬取結果
response=urllib.request.urlopen(request)

data=response.read()

#設置解碼方式
data=data.decode('utf-8')

#列印結果
print(data)

#列印爬取網頁的各類信息

print(type(response))
print(response.geturl())
print(response.info())
print(response.getcode())

它的運行結果如下:

你可以拷貝到自己的運行環境去試一試

D. 如何訪問需要登陸的網頁 python

可以嘗試添加相關cookie來試著去訪問。自己先本地登錄一下,然後抓取頁面cookie,然後構造相應的請求,讓他看起來像是登錄過的,如果網站驗證的不是特別嚴的話,是可以成功的。
還有一種方法,就是用Selenium框架,他會打開一個瀏覽器,然後訪問指定url。但是還是免不了需要登錄一次,但是登錄過程,輸入賬號密碼和點擊登錄按鈕都是你可以模擬的。具體你可以參照官方文檔。

E. 如何利用Python爬蟲從網頁上批量獲取想要的信息

稍微說一下背景,當時我想研究蛋白質與小分子的復合物在空間三維結構上的一些規律,首先得有數據啊,數據從哪裡來?就是從一個涵蓋所有已經解析三維結構的蛋白質-小分子復合物的資料庫裡面下載。這時候,手動一個個去下顯然是不可取的,我們需要寫個腳本,能從特定的網站選擇性得批量下載需要的信息。python是不錯的選擇。

import urllib #python中用於獲取網站的模塊
import urllib2, cookielib

有些網站訪問時需要cookie的,python處理cookie代碼如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)

通常我們需要在網站中搜索得到我們需要的信息,這里分為二種情況:

1. 第一種,直接改變網址就可以得到你想要搜索的頁面:

def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/xxx.cgi?&' + 『你想要搜索的參數』 # 結合自己頁面情況適當修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的頁面信息

2.第二種,你需要用到post方法,將你搜索的內容放在postdata裡面,然後返回你需要的頁面

def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/xxx' #這個網址是你進入搜索界面的網址
postData = urllib.urlencode( { 各種『post』參數輸入 } ) #這裡面的post參數輸入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的頁面信息

在獲取了我們需要的網頁信息之後,我們需要從獲得的網頁中進一步獲取我們需要的信息,這里我推薦使用 BeautifulSoup 這個模塊, python自帶的沒有,可以自行網路谷歌下載安裝。 BeautifulSoup 翻譯就是『美味的湯』,你需要做的是從一鍋湯裡面找到你喜歡吃的東西。

import re # 正則表達式,用於匹配字元
from bs4 import BeautifulSoup # 導入BeautifulSoup 模塊

soup = BeautifulSoup(pageContent) #pageContent就是上面我們搜索得到的頁面

soup就是 HTML 中所有的標簽(tag)BeautifulSoup處理格式化後的字元串,一個標準的tag形式為:

hwkobe24

通過一些過濾方法,我們可以從soup中獲取我們需要的信息:

(1) find_all ( name , attrs , recursive , text , **kwargs)
這裡面,我們通過添加對標簽的約束來獲取需要的標簽列表, 比如 soup.find_all ('p') 就是尋找名字為『p』的 標簽,而soup.find_all (class = "tittle") 就是找到所有class屬性為"tittle" 的標簽,以及soup.find_all ( class = re.compile('lass')) 表示 class屬性中包含『lass』的所有標簽,這里用到了正則表達式(可以自己學習一下,非常有用滴)

當我們獲取了所有想要標簽的列表之後,遍歷這個列表,再獲取標簽中你需要的內容,通常我們需要標簽中的文字部分,也就是網頁中顯示出來的文字,代碼如下:

tagList = soup.find_all (class="tittle") #如果標簽比較復雜,可以用多個過濾條件使過濾更加嚴格

for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #將這些信息寫入本地文件中以後使用

(2)find( name , attrs , recursive , text , **kwargs )

它與 find_all( ) 方法唯一的區別是 find_all() 方法的返回結果是值包含一個元素的列表,而 find() 方法直接返回結果

(3)find_parents( ) find_parent( )

find_all() 和 find() 只搜索當前節點的所有子節點,孫子節點等. find_parents() 和 find_parent() 用來搜索當前節點的父輩節點,搜索方法與普通tag的搜索方法相同,搜索文檔搜索文檔包含的內容

(4)find_next_siblings() find_next_sibling()

這2個方法通過 .next_siblings 屬性對當 tag 的所有後面解析的兄弟 tag 節點進代, find_next_siblings() 方法返回所有符合條件的後面的兄弟節點,find_next_sibling() 只返回符合條件的後面的第一個tag節點

(5)find_previous_siblings() find_previous_sibling()

這2個方法通過 .previous_siblings 屬性對當前 tag 的前面解析的兄弟 tag 節點進行迭代, find_previous_siblings()方法返回所有符合條件的前面的兄弟節點, find_previous_sibling() 方法返回第一個符合條件的前面的兄弟節點

(6)find_all_next() find_next()

這2個方法通過 .next_elements 屬性對當前 tag 的之後的 tag 和字元串進行迭代, find_all_next() 方法返回所有符合條件的節點, find_next() 方法返回第一個符合條件的節點

(7)find_all_previous() 和 find_previous()

這2個方法通過 .previous_elements 屬性對當前節點前面的 tag 和字元串進行迭代, find_all_previous() 方法返回所有符合條件的節點, find_previous()方法返回第一個符合條件的節點

具體的使用方法還有很多,用到這里你應該可以解決大部分問題了,如果要更深入了解可以參考官方的使用說明哈!

F. python打開網頁

open(zzy)

G. 如何用python訪問網頁並在表單處輸入內容

我用過selenium模擬瀏覽器
使用selenium的chrome或firefox的webdriver打開瀏覽器
driver.get(url) #訪問你的網頁from=driver.find_elements_by_xpath("xxx")通過xpath或id等方法鎖定到網頁上表單的那個元素後,用
from.send_keys("xxx")來輸入內容

H. python網頁打不開

一、清除DNS解析緩存

關於電腦網頁打不開怎麼回事的問題,系統一般會緩存平時常用的DNS地址,這樣能加速對網路的快速訪問,但有時候這些DNS地址由於某種原因導致不正常,這會使網頁無法正常打開,就會導致網頁無法打開。清楚DNS緩存後一般就能解決問題了。

步驟1、按住快捷鍵「Windows+R鍵」,然後在彈出的對話框中輸入「CMD」,再按 Enter鍵
步驟2、在新彈出的命令提示符窗口中輸入「ipconfig /displaydns」,便可查看到系統之前使用過的DNS地址
步驟3、再輸入命令「ipconfig /flushdns」。該命令的主要作用是清楚DNS解析緩存
步驟4、再成功刷新DNS解析緩存後,重新打開瀏覽器,打開網頁是否能正常打開網頁了呢?

二、手動設置DNS解析伺服器

若清除系統DNS解析緩存後,還不能正常打開網頁,那就有可能是當前系統使用的DNS解析伺服器出故障了。一般情況下,上網都是通過路由器自動獲取IP地址和DNS伺服器地址,所以接下來要手動設置系統的DNS解析伺服器地址。

步驟1、打開控制面板→查看網路狀態和任務→更改適配器設置;

步驟2、找到網路連接→右鍵屬性→進入本地連接屬性設置頁面
步驟3、在網路連接屬性窗口中,找到 Internet協議版本4(TCP/IPv4),然後點擊「屬性」
步驟4、在Internet協議版本4(TCP/IPv4)的屬性設置窗口中,我們選擇「使用下面的DNS伺服器地址」,並且在下面的DNS伺服器地址欄中輸入相應的DNS伺服器地址,最後點擊「確定」

I. 如何使用python製作網站伺服器,讓客戶通過網址,訪問我電腦的文件

首先糾正幾個名詞問題.

  1. 伺服器是指的硬體,PYthon作為一個編程語言是無法製作硬體的.

  2. 網址更確切的說應該是域名服務,網址是一個指向地址,指向的是伺服器的IP地址.


python只能製作網站後台程序,目前已經有現成的py庫可以快速搭建網站服務.如:Django,Flask,Bottle 等框架都可以實現.

通過網址訪問,則需要域名服務,需要從域名服務商購買域名,並將域名解析到,網站伺服器上,通過80埠訪問通過網站程序搭建的網站.

網址從服務商處注冊,是需要一定費用的,可以根據自己的需要在服務商處選擇.

域名是可以自己自定義選擇的,不過一定得是別人沒有注冊過的才行.

伺服器也是需要付費的.

J. 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

熱點內容
內到內演算法 發布:2025-05-14 07:29:11 瀏覽:33
文件夾名字不顯示 發布:2025-05-14 07:27:47 瀏覽:773
oracle的資料庫驅動jar 發布:2025-05-14 07:23:20 瀏覽:553
我的世界電腦版伺服器手機版能進嗎 發布:2025-05-14 07:22:01 瀏覽:678
達內培訓php多少錢 發布:2025-05-14 07:19:10 瀏覽:26
python位元組轉字元串 發布:2025-05-14 07:06:35 瀏覽:421
subplotpython 發布:2025-05-14 06:53:51 瀏覽:661
豎屏大屏導航工廠密碼一般是多少 發布:2025-05-14 06:49:29 瀏覽:806
如何在手機里設置無線網密碼 發布:2025-05-14 06:47:54 瀏覽:120
動態ip文件伺服器 發布:2025-05-14 06:44:22 瀏覽:891