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

Python3 實(shí)現(xiàn)爬取網(wǎng)站下所有URL方式

 更新時(shí)間:2020年01月16日 15:50:14   作者:嗨學(xué)編程  
今天小編就為大家分享一篇Python3 實(shí)現(xiàn)爬取網(wǎng)站下所有URL方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

獲取首頁(yè)元素信息:

目標(biāo) test_URL:http://www.xxx.com.cn/

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

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

首頁(yè)的URL鏈接獲?。?/p>

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

'''
遇到不懂的問(wèn)題?Python學(xué)習(xí)交流群:821460695滿足你的需求,資料都已經(jīng)上傳群文件,可以自行下載!
'''
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)

遍歷第一次返回的結(jié)果:

從第二步獲取URL的基礎(chǔ)上,遍歷請(qǐng)求每個(gè)頁(yè)面,獲取頁(yè)面中的URL鏈接,過(guò)濾掉不需要的信息

具體代碼如下:

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)遍歷:

遞歸實(shí)現(xiàn)爬取所有url,在get_next_url()函數(shù)中調(diào)用自身,代碼如下:

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 實(shí)現(xiàn)爬取網(wǎng)站下所有URL方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python如何隨機(jī)生成高強(qiáng)度密碼

    python如何隨機(jī)生成高強(qiáng)度密碼

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

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

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

    Python爬蟲(chóng)之Selenium實(shí)現(xiàn)窗口截圖

    這篇文章主要介紹了Python爬蟲(chóng)之Selenium實(shí)現(xiàn)窗口截圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 如何在Python3中使用telnetlib模塊連接網(wǎng)絡(luò)設(shè)備

    如何在Python3中使用telnetlib模塊連接網(wǎng)絡(luò)設(shè)備

    這篇文章主要介紹了如何在Python3中使用telnetlib模塊連接網(wǎng)絡(luò)設(shè)備,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 使用python 的matplotlib 畫(huà)軌道實(shí)例

    使用python 的matplotlib 畫(huà)軌道實(shí)例

    今天小編就為大家分享一篇使用python 的matplotlib 畫(huà)軌道實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • pandas探索你的數(shù)據(jù)實(shí)現(xiàn)可視化示例詳解

    pandas探索你的數(shù)據(jù)實(shí)現(xiàn)可視化示例詳解

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

    Python Web服務(wù)器Tornado使用小結(jié)

    最近在做一個(gè)網(wǎng)站的后端開(kāi)發(fā)。因?yàn)槌跗谥挥形乙粋€(gè)人做,所以技術(shù)選擇上很自由。在 web 服務(wù)器上我選擇了 Tornado。雖然曾經(jīng)也讀過(guò)它的源碼,并做過(guò)一些小的 demo,但畢竟這是第一次在工作中使用,難免又發(fā)現(xiàn)了一些值得分享的東西
    2014-05-05
  • Python搭建APNS蘋果推送通知推送服務(wù)的相關(guān)模塊使用指南

    Python搭建APNS蘋果推送通知推送服務(wù)的相關(guān)模塊使用指南

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

    python如何獲取服務(wù)器硬件信息

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

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

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

最新評(píng)論