<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    簡單 python 爬蟲完整代碼


    發現錯別字 1年前 提問
    回答
    1
    瀏覽
    14955
    請勿發布不友善或者負能量的內容。與人為善,比聰明更重要!
    回答數量: 1
    CISAW安全運維(專業級) 高級信息系統項目管理師

    一、導入需要用到的庫

    在這個通用公式里,我們要用到的庫只有兩個,一個是requests,另一個就是lxml里的etree,并且在通用公式中,第一個步驟的代碼不需要進行任何改動,具體代碼如下:

    import requests
    from lxml import etree

    二、確定URL和請求頭

    url就是我們想要爬取的網站的鏈接,而請求頭是從網站上的源代碼處復制過來的,具體方法如下:

    
    url='https://www.XXX.com/'
    
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
               'Referer': 'https://www.XXX.com/'}

    三、編寫獲取數據的函數

    首先我們要定義一個函數,因為都是實現獲取數據的功能,所以我們將其命名為:get_data(),然后將設置好的headers傳入,目的是為了防止反爬。而encoding對應的是編碼方式,這是為了防止獲取到的網頁內容亂碼而設置的。緊接著我們就是要設置selector選擇器,然后通過xpath方法來獲取內容對應的xpath路徑,具體獲取方法為:右鍵點擊網頁任意空白處,選擇檢查。然后在彈出的窗口中,點擊左上角的箭頭符號,將箭頭移動到你想要獲取的數據位置,點擊定位一下,然后再回到網頁源代碼處,點擊右鍵,選擇copy,再選擇copy xpath,然后再將復制好的路徑粘貼到我們編寫的代碼中。因為我們想獲取的是標題對應的文本內容,所以我們需要在復制到的xpath路徑后加上:/text()

    具體實現代碼如下:

    
    def get_data(url):
        response = requests.get(url, headers=headers)
        response.encoding = 'utf-8'
        selector = etree.HTML(response.text)
        content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()')  
        print(content)

    四、調用函數

    函數定義好之后,我們就需要調用它,調用的方法就是將定義好的函數名稱復寫一遍,然后再將url傳入即可。也可理解為這是在給整個代碼設置一個開關,只有有了這一個開關,運行代碼時程序才能跑起來。具體代碼如下:

    get_data(url)

    完整代碼

    
    import requests
    from lxml import etree
    
    url='https://www.XXX.com/'
    
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
               'Referer': 'https://www.XXX.com/'}
    
    def get_data(url):
        response = requests.get(url, headers=headers)
        response.encoding = 'utf-8'
        selector = etree.HTML(response.text)
        content = selector.xpath('//*[@id="newpcnews-1"]/div/div[2]/a[1]/div/text()')  
        print(content)
    
    
    get_data(url)

    回答所涉及的環境:聯想天逸510S、Windows 10。

    1年前 / 評論
    亚洲 欧美 自拍 唯美 另类