學習筆記 網路機械人3 0最簡單的網路機械人

2021-10-05 12:34:25 字數 3416 閱讀 1620

利用request輸出首頁內容

import requests    # 匯入網路請求模組

headers =

# 定製請求頭

html = requests.get(

'',headers = headers)

# 找到**,get請求

print

(html.text)

# 獲取內容

遍歷10頁內容

import requests    # 匯入網路請求模組

headers =

# 定製請求頭

for i in

range(10

):# 遍歷10頁內容

html = requests.get(

''.format

(i+1

),headers = headers)

# 找到**,get請求

print

(html.text)

# 獲取內容

四大物件種類——tag

tag 就是 html中的乙個個標籤

注意:返回的是第乙個符合要求的標籤(即使html中有多個 符合要求的標籤)

lang = 「zh-cn」 (lang就是language的縮寫代表語言; 「zh-cn」,其中zh就是中文的意思,cn代表著中國)

charset = 「utf-8/gbk」 代表著字符集的編碼形式,其中gbk編碼裡面已經包含了很多的漢字了

import requests  # 匯入網路請求模組

from bs4 import beautifulsoup # 從bs4模組匯入beautifulsoup方法

headers =

# 定製請求頭

r = requests.get(

"", headers = headers)

# # 找到**,get請求

html = r.text # 網頁內容

soup = beautifulsoup(html,

"lxml"

)# 解析內容

#print(soup.prettify())

print

('***title***'

)print

(soup.title)

# 獲取乙個title標籤

print

('\n***head***'

)print

(soup.head)

# 獲取乙個head標籤

print

("\n***a***"

)print

(soup.a)

# 獲取乙個a標籤

print

("\n***p***"

)print

(soup.p)

# 獲取乙個p標籤

如果想找到全部的tag(標籤),需要使用.find_all方法,就刻意獲得當前tag的所有子節點,並判斷是否符合過濾器的條件,舉個栗子,獲取所有的p標籤

print

(soup.find_all(

"p")

)

keyward引數

這個引數不是該函式內建的函式名,而是對應的想要搜尋的關鍵字的名字,比如

"i" href=

"genindex.html" title=

"general index"

>in***<

/a>

print

(soup.find_all(accesskey=

"i")

)

css選擇器

soup.select()和soup.find_all()方式是等價的,兩者返回的都是列表

)css選擇器的語法規則

四大標籤名不需要加任何修飾 [title、head、a、p]

class名前要加點

id名前要加#

舉個栗子如下,在瀏覽器檢查頁面按住ctrl + f進入查詢介面,輸入「.article-summary」,就可以找到笑話對應的標籤了

如果p標籤裡面有class

css選擇器的搜尋方式就是:p.class(p可以省略)

如果p標籤裡面有id

因為id是唯一的,所以當要選擇id對應的標籤時候,就可以省略一切都不看,直接#xx就可以了

在div中標籤可以省略,直接通過class和id進行定位

實戰解析

1 建立for迴圈爬取前10頁的內容

2 通過css選擇器找到每條內容

3 找到每條標籤裡面的內容並輸出

import requests    # 匯入網路請求模組

from bs4 import beautifulsoup # 從bs4模組匯入beautifulsoup方法

headers =

# 定製請求頭

for i in range(10): # 遍歷10頁內容

html = requests.get(''.format(i+1),headers = headers) # 找到**,get請求

soup = beautifulsoup(html.text, 'lxml') # 解析網頁文字

for joke in soup.select('li.article-summary'): # 遍歷符合標籤屬性的內容

title = joke.select('.article-title')[0].text # 取出內容的標題文字

print(title) # 輸出文字

最勇敢的機械人

題目描述 wind設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最勇敢的,於是它們比賽搬運一些物品。它們到了乙個倉庫,裡面有n個物品,每個物品都有乙個價值pi和重量wi,但是有些物品放在一起會 並且 具有傳遞性。a和b會 b和c會 則a和c會 機器人們可不想...

最勇敢的機械人

時間限制 1000 ms 記憶體限制 128 mb 機器人們都想知道誰是最勇敢的,於是它們比賽搬運一些物品。它們到了乙個倉庫,裡面有n個物品,每個物品都有乙個價值pi和重量wi,但是有些物品放在一起會 並且 具有傳遞性。a和b會 b和c會 則a和c會 機器人們可不想因此損失自己好不容易從wind那裡...

最敏捷的機械人

題目描述 wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。但是 ...