現在有很多個網頁:
要批量提取網頁内的文本:
可以在ChatGPT中這樣寫提示詞:
你是一個Python專家,寫一段Python程式,完全提取網頁文本内容的任務,下面是一步步的步驟:
打開表格檔案,檔案路徑:F:\傳感器企業大全(傳感器專家網)20230714.xlsx;
擷取表格E2單元格到E3939的單元格的内容,如“/brand/6182.html”,前面加上“https://www.sensorexpert.com.cn”,構成一個URL,注意:從第2行開始讀取;
打開這個URL,Request headers為:
Authority:
http://www.sensorexpert.com.cn
:Method:
GET
:Path:
/brand/6182.html
:Scheme:
https
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding:
gzip, deflate, br
Accept-Language:
zh-CN,zh;q=0.9,en;q=0.8
Cache-Control:
max-age=0
Sec-Ch-Ua:
"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"
Sec-Ch-Ua-Mobile:
?0
Sec-Ch-Ua-Platform:
"Windows"
Sec-Fetch-Dest:
document
Sec-Fetch-Mode:
navigate
Sec-Fetch-Site:
none
Sec-Fetch-User:
?1
Upgrade-Insecure-Requests:
1
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
定位xpath=/html/body/div[1]/div/div/div[2]/div[3]/div/div[1]/div/div/p[5]/strong 的strong 元素,提取裡面的内容,設為變量:sensortitile,列印輸出;
定位class="content-company"的div元素,使用 xpath('.//text()') 來擷取所有子元素的文本,并使用 join() 方法将它們連接配接在一起,然後使用 strip() 方法進行清理;提取的文本内容設為變量:sensorcompany;
在F盤建立一個Excel:傳感器企業簡介.xlsx,第1列寫入sensortitile,第2列寫入sensorcompany,第3列内容為“傳感器企業大全(傳感器專家網)20230714.xlsx”中的URL;
注意:每一步都要輸出資訊;
如果沒有擷取到strong 元素或div元素内容,就寫入空值;
每爬取1個URL内容,随機暫停3秒以内;
要有應對反爬蟲的措施,比如設定請求頭;
程式運作後的結果: