第乙個爬蟲和測試

2022-08-23 01:00:21 字數 3842 閱讀 8280

1.測試球賽程式中的所有函式

import random 

from math import *

def printintro():#列印程式的介紹性資訊

print("模擬桌球競賽")

print("學號23")

print("程式執行需要a和b的能力值(以0到1之間的小數表示)")

def getinputs():#獲得使用者輸入的引數

a = eval(input("請輸入選手a的能力值(0-1): "))

b = eval(input("請輸入選手b的能力值(0-1): "))

h= eval(input("請輸入一場要打幾局:"))

n = eval(input("模擬比賽的場次: "))

return a, b, h,n

def printsummary(winsa, winsb):

n = winsa + winsb

print("競技分析開始, 共模擬{}場比賽".format(n))

print("選手a獲勝{}場比賽, 佔比".format(winsa, winsa/n))

print("選手b獲勝{}場比賽, 佔比".format(winsb, winsb/n))

def gameover(scorea, scoreb):

g=scorea-scoreb

if (abs(g)==2 and scorea> 10 and scoreb> 10) or (g> 0 and scorea==11) or (g<0 and scoreb==11):

return scorea,scoreb

def simonegame(proba, probb,h):#模擬一場比賽

for i in range(h): #模擬七局四勝或五局三勝為一場

serving = "a"

rounda =roundb=0 #分別為隊伍a和b的贏得的比賽的局次

scorea, scoreb = 0, 0

while not gameover(scorea, scoreb): #模擬一局比賽

rounda=roundb=0

if serving == "a":

if random.random() < proba:

scorea += 1

else:

serving = "b"

else:

if random.random() < probb:

scoreb += 1

else:

serving = "a"

if scorea>scoreb:

rounda += 1

else:

roundb += 1

return rounda,roundb

def simngames(n ,proba, probb,h):#利用a,b的的能力值模擬n場比賽

winsa, winsb = 0, 0

for i in range(n):

rounda , roundb = simonegame(proba, probb,h)

if rounda >roundb:

winsa += 1

else:

winsb += 1

return winsa, winsb

def main():

printintro()

proba, probb, h,n = getinputs()#分別為隊伍a和b的能力值,一場的局數,比賽的場次

winsa, winsb = simngames(n, proba, probb,h)#分別為隊伍a和b的贏得的比賽的場次

printsummary(winsa, winsb)

if h==7:

print('此次模擬單打淘汰賽')

else:

print('此次模擬雙打淘汰賽或者是團體淘汰賽')

main()

2.爬蟲測試(對必應網頁)

import requests

def gethtmltext(url):

print("第",i+1,"次訪問")

try:

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

r.raise_for_status()

r.encoding='utf-8'

print("網路狀態碼:",r.status_code)

print("text屬性長度:",len(r.text))

print("content屬性長度:",len(r.content))

return r.text

except:

return "error"

url=""

#print(gethtmltext(url))

for i in range(20):

print(gethtmltext(url))

3這是乙個簡單的html頁面,請保持為字串,完成後面的計算要求。

from bs4 import beautifulsoup

import re

html = beautifulsoup("\n\n\n\n\n我的第一段落。

\n\n\n","html.parser")

print(html.head,"20")

print(html.body)

print(html.find_all(id="first"))

r=html.text

pattern = re.findall(u'[\u1100-\ufffdh]+?',r)

print(pattern)

4.中國大學排名(爬蟲)(2019)

輸入如下**:

import requests

from bs4 import beautifulsoup

import csv

url = ""

response = requests.get(url)

soup = beautifulsoup(response.content.decode('utf-8'), 'lxml')

all_movies = soup.find('div', id = "showing-soon")

#寫模式開啟csv檔案

csv_obj = open('data.csv', 'w', encoding="utf-8")

#寫入一行標題

csv.writer(csv_obj).writerow([("排名","學校名稱","省市","總分","科研規模"])

for each_university in all_university.find_all('div', class_ = "item"):

all_a = each_university.find_all('a')

all_li = each_university.find_all('li')

university_ranking= all_a[1].text

university_name = all_a[1]['href']

university_province = all_li[0].text

university_total score = all_li[1].text

university_scientific scale = all_li[2].text

#逐個寫入大學資訊

csv.writer(csv_obj).writerow([movie_name,movie_href,movie_date,movie_type,movie_area,movie_lovers])

#關閉csv_obj.close()

print("finshed")

第乙個 爬蟲和測試

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

第乙個爬蟲和測試

一 什麼是網路爬蟲?資訊時代,每天我們都在上網,每天我們都在瀏覽器上訪問 我們開啟乙個網頁,接著又跳轉到另乙個網頁,看到喜歡的內容,或者是一段幽默的句子,或者是一張美女的,我們會選擇將其儲存下來,當數量很多的時候,我們就會選擇用程式來實現這樣乙個過程,實現自動瀏覽網頁,自動根據我們的要求,儲存我們想...