python網絡爬蟲之自動化測試工具selenium[二]


@

前言

hello,大家好,在上章的內容里我們已經可以爬取到了整個網頁下來,當然也僅僅就是一個網頁。

因為里面還有很多很多的標簽啊之類我們所不需要的東西。

額,先暫且說下本章內容,如果是沒有絲毫編程基礎的小白來說是比較難懂的

本章內容重點是
1、分析網站的結構來獲取一個json串,也就是之前我們爬的是一個網頁,這次是爬取一個Ajax請求的一個響應數據(json串)。
2、使用selenuim模塊自動化工具

所以如果需要獲取一些評論啊,或者一些特殊的要求都可以學一下。

先說好,更上一章一樣下載好selenium模塊!!python網絡爬蟲之入門[一]
在這里插入圖片描述


一、獲取今日頭條的評論信息(request請求獲取json)

1、分析數據

進入頭條
在這里插入圖片描述
在fillder中分析一下這個網頁的一個請求
在這里插入圖片描述
詳細講解:

在這里插入圖片描述

我們測試一下
在這里插入圖片描述

2、獲取數據

ok,那么跟據我們之前所學的內容我們可以直接使用request模塊請求一次
在這里插入圖片描述
全部代碼:

"""
使用requests模塊爬取動態網頁數據:
今日頭條,某條新聞的評論信息
"""
import requests

url = "https://www.toutiao.com/api/comment/list/?group_id=6749065854995939854&item_id=6749065854995939854&offset=0&count=15"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"
}

requests.packages.urllib3.disable_warnings()
# 請求,獲得響應
response = requests.get(url, headers=headers, verify=False)


if response.status_code == 200:
    # print(response.text)
    # print(response.json())
    print(response.text)

二、獲取今日頭條的評論信息(selenium請求獲取)

ps:selenium模塊其實是一個自動化測試工具,大家還可以深入了解,因為它不僅僅只能用來做爬蟲。

還可以做為測試工具使用

1、分析數據

在使用selenium模塊之前先確定好自己使用的瀏覽器的型號,因為知道后才能去下載屬於自己的一個webdriver

比如我的瀏覽器型號
在這里插入圖片描述

然后自行到網上找到自己瀏覽器的webdriver

在這里插入圖片描述
每個的瀏覽器的driver都不一樣,我的就是chromedriver.exe
然后放到自己的python解釋器下的script目錄下

在這里插入圖片描述
來我們來解析一下這個網站:https://www.toutiao.com/a6747626504986853891/
在這里插入圖片描述
我們來看一看主體部分:

在這里插入圖片描述


2、獲取數據

引入調用,我在上面已經把我們可能所需要的東西都獲取到。也講解了一下一下;

在這里插入圖片描述
這個是加了一個python程序控制的點擊事件。

在這里插入圖片描述
lookthis....
在這里插入圖片描述

額,獲取到了吧,嘿嘿

在這里插入圖片描述

房源案例(僅供參考!!!,也許爬不了了)

"""
綜合案例:
使用selenium爬取 airbnb房源信息



一個房源所有的信息:_gig1e7
名稱:_qhtkbey
類型及大小:_fk7kh10里邊的span
價格:_1ixtnfc里面的span
_1dir9an
"""

from selenium import webdriver
import time


options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)

for page in range(18):
        print(f"第{page+1}頁數據:")
        driver.get(f"https://www.airbnb.cn/s/長沙/homes?refinement_paths%5B%5D=%2Fhomes&current_tab_id=home_tab&selected_tab_id=home_tab&screen_size=large&hide_dates_and_guests_filters=false&place_id=ChIJxWQcnvM1JzQRgKbxoZy75bE&s_tag=vaaWeg7D&section_offset=4&items_offset={page*18}&last_search_session_id=7d2afba3-cc47-434c-92be-65bac7643d3b")

        houseAll = driver.find_elements_by_css_selector("div._gig1e7")
        i = 1
        for house in houseAll:
            # 名稱
            name = house.find_element_by_css_selector("div._qhtkbey").text

            # 價格
            price = house.find_element_by_css_selector("div._1ixtnfc").text
            newprice = price.replace("價格", "").replace("\n", "")

            # 類型及大小
            typeSize = house.find_element_by_css_selector("span._fk7kh10").text

            type = typeSize.split(" · ")[0]
            size = typeSize.split(" · ")[1]

            print(f"{i} {name} {newprice} {type} {size}")

            time.sleep(2)
            i = i + 1

        time.sleep(5)

上面內容只能慢慢思考問題了
但是這還有一個selenium的使用方法:
在這里插入圖片描述

在這里插入圖片描述

后記

還是那句話,好好的分析網頁結構

如果感覺本章寫的還不錯的話,不如。。。。。(~ ̄▽ ̄)~ ,(´▽`ʃ♡ƪ)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM