欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3 實現爬取網站下所有URL方式

 更新時間:2020年01月16日 15:50:14   作者:嗨學編程  
今天小編就為大家分享一篇Python3 實現爬取網站下所有URL方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

獲取首頁元素信息:

目標 test_URL:http://www.xxx.com.cn/

首先檢查元素,a 標簽下是我們需要爬取得鏈接,通過獲取鏈接路徑,定位出我們需要的信息

soup = Bs4(reaponse.text, "lxml")
urls_li = soup.select("#mainmenu_top > div > div > ul > li")

首頁的URL鏈接獲取:

完成首頁的URL鏈接獲取,具體代碼如下:

'''
遇到不懂的問題?Python學習交流群:821460695滿足你的需求,資料都已經上傳群文件,可以自行下載!
'''
def get_first_url():
  list_href = []
  reaponse = requests.get("http://www.xxx.com.cn", headers=headers)
  soup = Bs4(reaponse.text, "lxml")
  urls_li = soup.select("#mainmenu_top > div > div > ul > li")
  for url_li in urls_li:
    urls = url_li.select("a")
    for url in urls:
      url_href = url.get("href")
      list_href.append(head_url+url_href)
      out_url = list(set(list_href))
  for reg in out_url:
    print(reg)

遍歷第一次返回的結果:

從第二步獲取URL的基礎上,遍歷請求每個頁面,獲取頁面中的URL鏈接,過濾掉不需要的信息

具體代碼如下:

def get_next_url(urllist):
  url_list = []
  for url in urllist:
    response = requests.get(url,headers=headers)
    soup = Bs4(response.text,"lxml")
    urls = soup.find_all("a")
    if urls:
      for url2 in urls:
        url2_1 = url2.get("href")
        if url2_1:
          if url2_1[0] == "/":
            url2_1 = head_url + url2_1
            url_list.append(url2_1)
            if url2_1[0:24] == "http://www.xxx.com.cn":
              url2_1 = url2_1
              url_list.append(url2_1)
            else:
              pass
          else:
            pass
        else:
          pass
    else:
      pass
  url_list2 = set(url_list)
  for url_ in url_list2:
    res = requests.get(url_)
    if res.status_code ==200:
      print(url_)
  print(len(url_list2))

遞歸循環(huán)遍歷:

遞歸實現爬取所有url,在get_next_url()函數中調用自身,代碼如下:

get_next_url(url_list2)

全部代碼如下:

import requests
from bs4 import BeautifulSoup as Bs4

head_url = "http://www.xxx.com.cn"
headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
}
def get_first_url():
  list_href = []
  reaponse = requests.get(head_url, headers=headers)
  soup = Bs4(reaponse.text, "lxml")
  urls_li = soup.select("#mainmenu_top > div > div > ul > li")
  for url_li in urls_li:
    urls = url_li.select("a")
    for url in urls:
      url_href = url.get("href")
      list_href.append(head_url+url_href)
      out_url = list(set(list_href))
  return out_url


def get_next_url(urllist):
  url_list = []
  for url in urllist:
    response = requests.get(url,headers=headers)
    soup = Bs4(response.text,"lxml")
    urls = soup.find_all("a")
    if urls:
      for url2 in urls:
        url2_1 = url2.get("href")
        if url2_1:
          if url2_1[0] == "/":
            url2_1 = head_url + url2_1
            url_list.append(url2_1)
            if url2_1[0:24] == "http://www.xxx.com.cn":
              url2_1 = url2_1
              url_list.append(url2_1)
            else:
              pass
          else:
            pass
        else:
          pass
    else:
      pass
  url_list2 = set(url_list)
  for url_ in url_list2:
    res = requests.get(url_)
    if res.status_code ==200:
      print(url_)
  print(len(url_list2))
  get_next_url(url_list2)


if __name__ == "__main__":
  urllist = get_first_url()
  get_next_url(urllist)

以上這篇Python3 實現爬取網站下所有URL方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python如何隨機生成高強度密碼

    python如何隨機生成高強度密碼

    這篇文章主要為大家詳細介紹了python隨機生成高強度密碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Python中的“_args”和“__kwargs”用法詳解

    Python中的“_args”和“__kwargs”用法詳解

    *args 和 **kwargs 主要?于函數定義,你可以將不定數量的參數傳遞給?個函數,這篇文章主要介紹了Python中的“_args”和“__kwargs”用法,需要的朋友可以參考下
    2023-01-01
  • Python爬蟲之Selenium實現窗口截圖

    Python爬蟲之Selenium實現窗口截圖

    這篇文章主要介紹了Python爬蟲之Selenium實現窗口截圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 如何在Python3中使用telnetlib模塊連接網絡設備

    如何在Python3中使用telnetlib模塊連接網絡設備

    這篇文章主要介紹了如何在Python3中使用telnetlib模塊連接網絡設備,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 使用python 的matplotlib 畫軌道實例

    使用python 的matplotlib 畫軌道實例

    今天小編就為大家分享一篇使用python 的matplotlib 畫軌道實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • pandas探索你的數據實現可視化示例詳解

    pandas探索你的數據實現可視化示例詳解

    這篇文章主要為大家介紹了pandas探索你的數據實現可視化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Python Web服務器Tornado使用小結

    Python Web服務器Tornado使用小結

    最近在做一個網站的后端開發(fā)。因為初期只有我一個人做,所以技術選擇上很自由。在 web 服務器上我選擇了 Tornado。雖然曾經也讀過它的源碼,并做過一些小的 demo,但畢竟這是第一次在工作中使用,難免又發(fā)現了一些值得分享的東西
    2014-05-05
  • Python搭建APNS蘋果推送通知推送服務的相關模塊使用指南

    Python搭建APNS蘋果推送通知推送服務的相關模塊使用指南

    這里總結了一份Python搭建蘋果推送通知推送服務的相關模塊使用指南,包括PyAPNs、基于twisted框架的pyapns以及apns-client三個模塊的介紹,需要的朋友可以參考下
    2016-06-06
  • python如何獲取服務器硬件信息

    python如何獲取服務器硬件信息

    這篇文章主要為大家詳細介紹了python獲取服務器硬件信息的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • python?scapy抓包獲取udp并轉發(fā)的操作步驟

    python?scapy抓包獲取udp并轉發(fā)的操作步驟

    這篇文章主要介紹了python?scapy抓包獲取udp并轉發(fā)的操作步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01

最新評論