Python 第乙個爬蟲和測試

2022-04-30 19:39:16 字數 3165 閱讀 9753

一、用requests庫的get()函式訪問必應主頁20次,列印返回狀態,text()內容,計算text()屬性和content屬性所返回網頁內容的長度。

**如下:

import

requests

for i in range(20):

r = requests.get("

",timeout=30)

print("

狀態 = {}

".format( r.status_code))

print("

text編碼方式 = {}

".format(r.encoding))

print("

text屬性 = {}

".format(r.text))

print("

二進位制形式 = {}

".format(r.content))

這是訪問一次的結果:

狀態 = 200

text編碼方式 = iso-8859-1

text內容 =

二進位制形式 = b'\n\n \n google\n\n \n \n

\n \n

我的第乙個段落。"1

">

row 1, cell 1

row 1, cell 2

row 2, cell 1

row 2, cell 2

a.列印head標籤內容和學號後兩位

b.獲取body標籤的內容

c.獲取id為first的標籤物件

d.獲取並列印html頁面中的中文字元

**如下:

import

requests

from bs4 import

beautifulsoup

soup = beautifulsoup("

\ \

我的第乙個段落。

\ row 1,cell 1\

row 1,cell 2

row 2,cell 1\

row 2,cell 2")

print(soup.head,"

39") #

獲取並列印head標籤的內容和學號後兩位

print(soup.body) #

獲取並列印body的內容

print(soup.find_all(id="

first

")) #

獲取並列印id為first的文字

print(soup.h1.string,soup.p.string) #

獲取並列印html頁面中的中文字元

結果如下:

三、爬取中國大學排名2019

**如下:

import

requests

from bs4 import

beautifulsoup

alluniv=

defgethtmltext(url):

try:

r=requests.get(url,timeout=30)

r.raise_for_status()

r.encoding='

utf-8

'return

r.text

except

:

return

""def

fillunivlist(soup):

data=soup.find_all('tr'

)

for tr in

data:

ltd=tr.find_all('td'

)

if len(ltd)==0:

continue

singleuniv=

for td in

ltd:

defprintunivlist(num):

print("

^10}^6}^4}^10}

".format(chr(12288),"

排名","

學校名稱

","省市

","總分

","培養規模"))

for i in

range(num):

u=alluniv[i]

print("

^10}^5}^8}^10}

".format(chr(12288),u[0],u[1],u[2],u[3],u[6]))

defmain(num):

url='

'html=gethtmltext(url)

soup=beautifulsoup(html,"

html.parser")

fillunivlist(soup)

printunivlist(num)

main(10)

執行結果如下:

第乙個 爬蟲和測試

1.爬蟲 如下 import requests def gerhtmltext url try r requests.get url,timeout 1 r.raise for status r.encoding utf 8 return r.text except return 訪問錯誤 url ...

第乙個爬蟲和測試

一 用之前學過的try except進行除錯 測試球賽的gameover函式 可以看到是正確的,我們也可以試一試其他的數字比例。在這裡就不一一試了。requests庫是乙個簡潔且簡單的處理http請求的第三方庫。get 是對應與http的get方式,獲取網頁的最常用方法,可以增加timeout n ...

第乙個爬蟲和測試

1.測試球賽程式中的所有函式 import random from math import def printintro 列印程式的介紹性資訊 print 模擬桌球競賽 print 學號23 print 程式執行需要a和b的能力值 以0到1之間的小數表示 def getinputs 獲得使用者輸入的...