2 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個贊
import requests
from bs4 import BeautifulSoup as bs
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"}
url = "https://www.proxyscan.io/"
r=requests.get(url,headers=headers)
soup = bs(r.content,"html.parser")
a = soup.findAll(scope="row")
a = str(a).replace("<th scope=\"row\">", "").replace("</th>", "").replace("[","").replace("]","").replace(" ","")
a = a.split(",")
for proxy in a:
print(proxy)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個贊
您可以使用find_next_siblings()函數(shù)來獲取下一個可用標(biāo)簽。
因此,通過敏銳地觀察解析后的html,我們可以看到端口是代理之后的下一個標(biāo)簽。因此我們可以循環(huán)變量a并找到下一個相鄰的標(biāo)簽。
從 所返回的數(shù)組中獲取第一個元素find_next_siblings()。
大概是這樣的<td>4145</td>。從中清理 html 標(biāo)簽或從中提取字符串td,您應(yīng)該獲得端口號。
for i in a:
full = i.find_next_siblings()[0]
port = str(full).replace("<td>","")
port = str(port).replace("</td>", "")
print(port)
添加回答
舉報