1. 程式人生 > 其它 >【Python】【爬蟲】【爬狼】004_正則規則模板及其應用

【Python】【爬蟲】【爬狼】004_正則規則模板及其應用

正則規則模板及其應用。通過使用正則表示式,取出我們想要的內容

正則規則模板 與 應用(一)

先看這些視訊,是在哪個div裡面的

    for datapage in soup.find_all("div", class_="lpic"):
        # 一個li標籤,包含一個視訊
        for data in datapage.find_all("li"):
    # 不知道soup代表著什麼,沒關係,也別急著寫,繼續往後看

我們要獲取的是

1.視訊的標題

2.視訊的型別

3.視訊的介紹

4.視訊的詳情頁連結

5.視訊的封面圖連結

正則規則模板

    # 正則規則開始
    gz_fan_title = re.compile(r'''<a href=".*?" title=".*?">(.*?)</a>''',re.S)
    gz_fan_url = re.compile(r'''<a href="(.*?)"''',re.S)
    gz_fan_url_img = re.compile(r'''referrerpolicy="no-referrer" src="(.*?)"''',re.S)
    gz_fan_type = re.compile(r'''<span>型別:(.*?)</span>''',re.S)
    gz_fan_message = re.compile(r'''<p>(.*?)</p>''', re.S)
    # 正則規則結束

應用正則規則模板

 		data = str(data)
                fan_title = re.findall(gz_fan_title, data)
                fan_url = re.findall(gz_fan_url, data)
                fan_img = re.findall(gz_fan_url_img, data)
                fan_type = re.findall(gz_fan_type, data)
                fan_message = re.findall(gz_fan_message, data)

那麼上面的data是什麼,怎麼獲得呢?

# 假設搜尋love
pageNumber = xrilag_SearchAll("love")
# xrilag_SearchAll是自定義函式,想了解其具體程式碼的請檢視部落格https://www.cnblogs.com/mllt/p/python_pc_pl_edu_003.html
# pageNumber是搜尋結果的總頁數
# 使用for迴圈,一頁一頁進行處理
for page in range(pageNumber):
	# 根據頁面跳轉的地址改變規則寫出頁面含變數連結,然後進行原始碼獲取,後面便可以對這一頁展開分析與爬取資料了(https://www.cnblogs.com/mllt/p/python_pc_pl_edu_003.html)
    html_Document = xrilang_UrlToDocument("https://www.yhdmp.cc/s_all?kw=love&pagesize=24&pageindex=" + str(page))
    # xrilang_UrlToDocument是自定義函式,作用是獲取網頁原始碼。想了解其具體內容,請檢視部落格https://www.cnblogs.com/mllt/p/python_pc_pl_edu_002.html
    # 建立一個Beautiful Soup物件
    soup = BeautifulSoup(html_Document, "html.parser")  # parser是直譯器
    # 使用了.kpic樣式的div,包含且只包含了此頁的所有視訊列表
    for datapage in soup.find_all("div", class_="lpic"):
        # 一個li標籤,包含一個視訊
        for data in datapage.find_all("li"):
            # 應用正則規則模板
            data = str(data)
            fan_title = re.findall(gz_fan_title, data)
            fan_url = re.findall(gz_fan_url, data)
            fan_img = re.findall(gz_fan_url_img, data)
            fan_type = re.findall(gz_fan_type, data)
            fan_message = re.findall(gz_fan_message, data)

作者:萌狼藍天,轉載請註明原文連結:https://www.cnblogs.com/mllt/p/python_pc_pl_edu_004.html | 萌狼藍天@嗶哩嗶哩 | QQ:3447902411(僅限技術交流,新增請說明方向)