AI應(yīng)用開(kāi)發(fā)相關(guān)目錄
本專欄包括AI應(yīng)用開(kāi)發(fā)相關(guān)內(nèi)容分享,包括不限于AI算法部署實(shí)施細(xì)節(jié)、AI應(yīng)用后端分析服務(wù)相關(guān)概念及開(kāi)發(fā)技巧、AI應(yīng)用后端應(yīng)用服務(wù)相關(guān)概念及開(kāi)發(fā)技巧、AI應(yīng)用前端實(shí)現(xiàn)路徑及開(kāi)發(fā)技巧
適用于具備一定算法及Python使用基礎(chǔ)的人群
- AI應(yīng)用開(kāi)發(fā)流程概述
- Visual Studio Code及Remote Development插件遠(yuǎn)程開(kāi)發(fā)
- git開(kāi)源項(xiàng)目的一些問(wèn)題及鏡像解決辦法
- python實(shí)現(xiàn)UDP報(bào)文通信
- python實(shí)現(xiàn)日志生成及定期清理
- Linux終端命令Screen常見(jiàn)用法
- python實(shí)現(xiàn)redis數(shù)據(jù)存儲(chǔ)
- python字符串轉(zhuǎn)字典
- python實(shí)現(xiàn)文本向量化及文本相似度計(jì)算
- python對(duì)MySQL數(shù)據(jù)的常見(jiàn)使用
- 一文總結(jié)python的異常數(shù)據(jù)處理示例
- 基于selenium和bs4的通用數(shù)據(jù)采集技術(shù)(附代碼)
一、前言
本文所說(shuō)的數(shù)據(jù)采集技術(shù)即爬蟲(chóng),爬蟲(chóng)技術(shù)用于從互聯(lián)網(wǎng)上抓取大量數(shù)據(jù)。這些爬蟲(chóng)程序能夠自動(dòng)化地訪問(wèn)網(wǎng)頁(yè)/公眾號(hào)平臺(tái)、解析內(nèi)容,并提取所需的信息。在大數(shù)據(jù)和機(jī)器學(xué)習(xí)等領(lǐng)域,爬蟲(chóng)技術(shù)發(fā)揮著至關(guān)重要的作用。
數(shù)據(jù)采集技術(shù)為項(xiàng)目提供豐富的數(shù)據(jù)資源,根據(jù)這些信息進(jìn)行產(chǎn)品設(shè)計(jì)和創(chuàng)新,持續(xù)改進(jìn)和優(yōu)化產(chǎn)品。
二、環(huán)境配置
pip install beautifulsoup4
pip install selenium
安裝WebDriver:Selenium需要WebDriver來(lái)與瀏覽器進(jìn)行交互。不同的瀏覽器需要不同的WebDriver。例如,如果你使用的是Chrome瀏覽器,你需要下載并安裝chromedriver;如果你使用的是Firefox瀏覽器,你需要下載并安裝geckodriver。請(qǐng)根據(jù)你的瀏覽器類型,從官方網(wǎng)站或相關(guān)源下載對(duì)應(yīng)的WebDriver,并將其放置在系統(tǒng)路徑下,以便Selenium能夠找到并調(diào)用它。
三、技術(shù)策略
http://ytzwfw.sd.gov.cn/yt/icity/project/index
特性1:翻頁(yè)后url無(wú)變化規(guī)律
特性2:數(shù)據(jù)爬取分為2階段,需要在url后再爬取具體數(shù)據(jù)項(xiàng)的url_son,再針對(duì)url_son設(shè)計(jì)程序采集。
特性3:html源碼中無(wú)法直接獲取數(shù)據(jù)存在形式,僅開(kāi)發(fā)者模式下才能觀察到
由此可知該網(wǎng)站具備相當(dāng)程度的反扒設(shè)計(jì)。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-850992.html
策略:
設(shè)計(jì)兩個(gè)階段
的數(shù)據(jù)采集程序,克服特點(diǎn)2
。
采取selenium自動(dòng)化框架
,克服特點(diǎn)1
。
采取bs4數(shù)據(jù)采集框架
,客服特點(diǎn)3
。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-850992.html
四、代碼實(shí)例
step1:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
def get_single_page_data():
result = []
for i in range(10):
try:
mid_title = driver.find_element(By.XPATH, '//*[@id="itemlist"]/div[' + str(i + 1) + ']/div[1]/a[1]').text
mid_url = driver.find_element(By.XPATH, '//*[@id="itemlist"]/div[' + str(i + 1) + ']/div[1]/a[1]').get_attribute('onclick')
mid = [mid_title,mid_title,mid_url.split("'")[-2]]
# print(mid)
result.append(mid)
except:
print('data error!')
return result
def write_data_totxt(data:str):
with open('data.txt', 'a') as f:
f.write(data)
f.write('\n')
# 創(chuàng)建一個(gè)Chrome瀏覽器實(shí)例
driver = webdriver.Chrome(options=Options(), executable_path=r'C:\Program Files\Google\Chrome\Application\chromedriver.exe')
# 打開(kāi)目標(biāo)網(wǎng)頁(yè)
driver.get("http://ytzwfw.sd.gov.cn/yt/icity/project/index")
data = []
page = 0
while page<= 628: # 循環(huán)頁(yè)數(shù)
try:
single_page_data = get_single_page_data() # 抓數(shù)據(jù)
for i in single_page_data:
print(i)
write_data_totxt(i[0])
write_data_totxt(i[-1])
# /html/body/div[5]/div/div/div[2]/div/a[8]
driver.find_element(By
到了這里,關(guān)于基于selenium和bs4的通用數(shù)據(jù)采集技術(shù)(附代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!