国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾

這篇具有很好參考價值的文章主要介紹了【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、翻頁分析:

二、代碼邏輯

1、入口程序修改

2、page參數(shù)傳入

三、完整代碼

1、運行結(jié)果

2、錯誤分析:

3、缺陷代碼:

4、完善邏輯:

5、完善代碼:


(說在前面,任何邏輯都有很多方法實現(xiàn),我們先從最笨的講起)

(注:其中的cookie需要填自己的)

一、翻頁分析:

通過對比第一頁與第二頁的URL來看是否有差別

可以發(fā)現(xiàn)通過參數(shù)pageNum=來控制頁面

(第一頁pageNum參數(shù)被省略,如果下一面沒有數(shù)據(jù)了,也可能出錯)

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾,【網(wǎng)絡(luò)安全-帶你練爬蟲】,爬蟲



二、代碼邏輯

1、入口程序修改

if __name__ == '__main__':
    with open('1.csv', 'a', encoding='utf-8', newline='') as f:
        csv_w = csv.writer(f)
        csv_w.writerow(('公司名', 'URL', '類型', '資金'))
        for page in range(1, 6):
            get_TYC_info(page)
            print(f'第{page}頁已爬完')
            time.sleep(2)

(1)if __name__ == '__main__':
一個條件語句,判斷當(dāng)前模塊是否直接被運行。當(dāng)該模塊直接執(zhí)行時,以下代碼塊將被執(zhí)行。


(2)with open('1.csv', 'a', encoding='utf-8', newline='') as f:
打開名為"1.csv"的文件,并賦值給變量f。使用'a'模式打開文件,表示以追加方式寫入文件內(nèi)容。encoding='utf-8'表示以UTF-8編碼打開文件,newline=''表示在寫入時不插入額外的換行符。


(3)csv_w = csv.writer(f)
創(chuàng)建一個CSV寫入器對象,并將文件對象f傳遞給它。這樣可以通過該寫入器對象來操作CSV文件。


(4)csv_w.writerow(('公司名', 'URL', '類型', '資金'))
使用CSV寫入器對象csv_w將一個包含四個元素的元組寫入CSV文件。這個元組表示CSV文件的表頭,即第一行的內(nèi)容。


(5)for page in range(1, 6):
這是一個循環(huán)語句,從1循環(huán)到5,將每個循環(huán)中的值賦給變量page。


(6)get_TYC_info(page)
調(diào)用名為get_TYC_info的函數(shù),并傳遞當(dāng)前循環(huán)的值page作為參數(shù)。這個函數(shù)用于爬取TYC網(wǎng)站上的信息。


(7)print(f'第{page}頁已爬完')
打印當(dāng)前循環(huán)的值page,并顯示"第X頁已爬完"的消息。這是一個簡單的提示,用于顯示程序的進度。


(8)time.sleep(2)
程序暫停執(zhí)行2秒鐘。這是為了避免過快地請求網(wǎng)頁導(dǎo)致被屏蔽或限制訪問。

2、page參數(shù)傳入

def get_TYC_info(page):
    TYC_url = f"https://www.tianyancha.com/search?key=&sessionNo=1688538554.71584711&base=hub&cacheCode=00420100V2020&city=wuhan&pageNum={page}"

1、將page參數(shù)傳入進get_TYC_info()函數(shù)(頁面的爬取函數(shù))

2、f'URL……&pageNum={page}'

將URL中的page參數(shù)動態(tài)修改



三、完整代碼

(代碼在最后)

1、運行結(jié)果

(第1、2面都是可以爬的)

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾,【網(wǎng)絡(luò)安全-帶你練爬蟲】,爬蟲

?第2面開始有報錯

(這個錯誤問題我們來分析一下)

其實就是爬取的列表為空,導(dǎo)致的錯誤

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾,【網(wǎng)絡(luò)安全-帶你練爬蟲】,爬蟲


2、錯誤分析:

看圖說話錯誤原因:

是不是到我們報錯的位置這,下一個企業(yè)就沒了相關(guān)類型了,對吧

所以爬取到的列表為空,從而導(dǎo)致了不能繼續(xù)執(zhí)行爬取下一級---->所以報錯

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾,【網(wǎng)絡(luò)安全-帶你練爬蟲】,爬蟲


3、缺陷代碼:

import time
import requests
from bs4 import BeautifulSoup
import csv

def get_TYC_info(page):
    TYC_url = f"https://www.tianyancha.com/search?key=&base=hub&city=wuhan&cacheCode=00420100V2020&sessionNo=1688108233.45545222&pageNum={page}"
    html = get_page(TYC_url)
    soup = BeautifulSoup(html, 'lxml')
    GS_list = soup.find('div', attrs={'class': 'index_list-wrap___axcs'})
    GS_items = GS_list.find_all('div', attrs={'class': 'index_search-box__7YVh6'})
    for item in GS_items:
        title = item.find('div', attrs={'class': 'index_name__qEdWi'}).a.span.text
        link = item.a['href']
        company_type = item.find('div', attrs={'class': 'index_tag-list__wePh_'}).find_all('div', attrs={'class': 'index_tag-common__edIee'})
        type_texts = [element.text for element in company_type]
        money = item.find('div', attrs={'class': 'index_info-col__UVcZb index_narrow__QeZfV'}).span.text

        print(title.strip(), link, type_texts, money)


def get_page(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36',
            'Cookie':'!!!!!!!!!!'
}
        response = requests.get(url, headers=headers, timeout=10)
        return response.text
    except:
        return ""


if __name__ == '__main__':
    with open('1.csv', 'a', encoding='utf-8', newline='') as f:
        csv_w = csv.writer(f)
        csv_w.writerow(('公司名', 'URL', '類型', '資金'))
        for page in range(1, 6):
            get_TYC_info(page)
            print(f'第{page}頁已爬完')
            time.sleep(2)

4、完善邏輯:

加上了一個if判斷,第一個爬取點不為none才繼續(xù)往后

        if company_type_div is not None:
            company_type = company_type_div.find_all('div', attrs={'class': 'index_tag-common__edIee'})
            type_texts = [element.text for element in company_type]
        else:
            type_texts=''

運行結(jié)果:

指定的5面全部爬取完了

【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾,【網(wǎng)絡(luò)安全-帶你練爬蟲】,爬蟲


5、完善代碼:

(注:其中的cookie需要填自己的)

import time
import requests
from bs4 import BeautifulSoup
import csv

def get_TYC_info(page):
    TYC_url = f"https://www.tianyancha.com/search?key=&sessionNo=1688538554.71584711&base=hub&cacheCode=00420100V2020&city=wuhan&pageNum={page}"
    html = get_page(TYC_url)
    soup = BeautifulSoup(html, 'lxml')
    GS_list = soup.find('div', attrs={'class': 'index_list-wrap___axcs'})
    GS_items = GS_list.find_all('div', attrs={'class': 'index_search-box__7YVh6'})
    for item in GS_items:
        title = item.find('div', attrs={'class': 'index_name__qEdWi'}).a.span.text
        link = item.a['href']
        company_type_div = item.find('div', attrs={'class': 'index_tag-list__wePh_'})
        if company_type_div is not None:
            company_type = company_type_div.find_all('div', attrs={'class': 'index_tag-common__edIee'})
            type_texts = [element.text for element in company_type]
        else:
            type_texts=''
        money = item.find('div', attrs={'class': 'index_info-col__UVcZb index_narrow__QeZfV'}).span.text

        print(title.strip(), link, type_texts, money)




def get_page(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36',
            'Cookie':'!!!!!!!!!!'
}
        response = requests.get(url, headers=headers, timeout=10)
        return response.text
    except:
        return ""


if __name__ == '__main__':
    with open('1.csv', 'a', encoding='utf-8', newline='') as f:
        csv_w = csv.writer(f)
        csv_w.writerow(('公司名', 'URL', '類型', '資金'))
        for page in range(1, 6):
            get_TYC_info(page)
            print(f'第{page}頁已爬完')
            time.sleep(2)


網(wǎng)絡(luò)安全小圈子

README.md · 書半生/網(wǎng)絡(luò)安全知識體系-實戰(zhàn)中心 - 碼云 - 開源中國 (gitee.com)https://gitee.com/shubansheng/Treasure_knowledge/blob/master/README.md

GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge文章來源地址http://www.zghlxwxcb.cn/news/detail-525822.html

到了這里,關(guān)于【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第5練:爬蟲的翻頁操作+錯誤情況過濾的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第14練:文件內(nèi)容的讀取、取出

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第14練:文件內(nèi)容的讀取、取出

    目錄 一、目標(biāo)1:把文件內(nèi)容遍歷取出 二、目標(biāo)2:把文件內(nèi)容全部取出 三、網(wǎng)絡(luò)安全O ?(1)如果文件腳本在不同目錄 (2)如果文件直接和腳本在同一目錄 ?(1)存放取出的元素 (2)將目標(biāo)文件內(nèi)容的元素依次取出 (for循環(huán)) (3)所有元素依次添加進列表中 (4)完整

    2024年02月16日
    瀏覽(19)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第1練:發(fā)送請求獲取返回內(nèi)容

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第1練:發(fā)送請求獲取返回內(nèi)容

    目錄 一、前置知識1 二、前置知識2 requests庫的7個主要方法 語法: 注解: 三、擴展工具 四、網(wǎng)絡(luò)安全小圈子 顧名思義網(wǎng)絡(luò)爬蟲第一步,爬取目標(biāo)?URL的網(wǎng)頁的信息 可以使用 urllib.request 和 requests發(fā)送請求,然后返回對應(yīng)的數(shù)據(jù)(py3) 1、urllib 庫是 Python 內(nèi)置的 2、requests 庫是

    2024年02月12日
    瀏覽(14)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第23練:文件內(nèi)容的刪除+寫入

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第23練:文件內(nèi)容的刪除+寫入

    目錄 0x00 前言: 0x02 解決: 本篇博文可能會有一點點的超級呆 你是不是也會想: 使用pyrhon將指定文件夾位置里面的1.txt中數(shù)據(jù)全部刪除以后----然后再將參數(shù)req_text的值寫入到1.txt (小呆呆實錘) 區(qū)分一下: “w”模式: 使用 \\\"w\\\" 模式打開一個文件時,如果該文件已經(jīng)存在,

    2024年02月09日
    瀏覽(21)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第2練:爬取指定位置數(shù)據(jù)

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第2練:爬取指定位置數(shù)據(jù)

    目錄 一、思路 二、工具 三、代碼處理 第一部分:發(fā)起請求+接收響應(yīng)(不過多講) 第二部分:解析HTML頁面+提取數(shù)據(jù) 第三部分:處理數(shù)據(jù) 分解步驟,化繁為簡 爬蟲分為五步走: 發(fā)起HTTP請求:爬蟲使用HTTP協(xié)議向目標(biāo)網(wǎng)址發(fā)送請求,請求獲取特定的HTML頁面。這可以通過使用

    2024年02月12日
    瀏覽(14)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第11練:xpath快速定位提取數(shù)據(jù)

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第11練:xpath快速定位提取數(shù)據(jù)

    目錄 一、目標(biāo)1:使用etree解析數(shù)據(jù) 二、目標(biāo)2:使用xpath爬取指定數(shù)據(jù) 三、目標(biāo)3:提取指定數(shù)據(jù) ?四、網(wǎng)絡(luò)安全小圈子 其余的不用過多介紹,前面的練習(xí)都給大家已經(jīng)過了一遍 其中數(shù)據(jù)解析代碼如下 對返回的內(nèi)容進行UTF-8解碼,不然會出現(xiàn)亂碼 我們來爬一下這幾個標(biāo)題 ?

    2024年02月13日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第8練:json數(shù)據(jù)的最小項提取

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第8練:json數(shù)據(jù)的最小項提取

    目錄 一、目標(biāo)1:爬取指定json中數(shù)據(jù) 二、目標(biāo)2:循環(huán)取json中數(shù)據(jù) 三、目標(biāo)3:提取每個數(shù)據(jù)中的某一項 四、網(wǎng)絡(luò)安全小圈子 爬取data里數(shù)據(jù) ? 核心代碼: (1)json.loads()方法可用于解析有效的JSON字符串并將其轉(zhuǎn)換為Python字典 (2)dirt1[\\\'data\\\']是打印json中的data部分 運行結(jié)果:

    2024年02月13日
    瀏覽(18)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第19練:使用python打開exe文件

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第19練:使用python打開exe文件

    目錄 一、目標(biāo)1:調(diào)用exe文件 二、目標(biāo)2:調(diào)用exe打開文件 1、subprocess?模塊允許在 Python 中啟動一個新的進程,并與其進行交互 2、subprocess.run()?函數(shù)來啟動exe文件 3、subprocess.run([\\\"文件路徑\\\"],check=True/) 4、check:如果程序返回一個非零的退出碼,subprocess.run()?函數(shù)就會拋出一個

    2024年02月11日
    瀏覽(17)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第22練:數(shù)據(jù)包中參數(shù)提取與處理

    目錄 一、目標(biāo)1:GET數(shù)據(jù)包的處理 1、GET數(shù)據(jù)包中參數(shù)的提取 2、GET請求中 統(tǒng)計參數(shù)個數(shù) 二、目標(biāo)2:POST數(shù)據(jù)包的處理 1、post中參數(shù)個數(shù)的提取 2、POST請求中 統(tǒng)計參數(shù)個數(shù) (與GET類似,就不再做敘述了)

    2024年02月10日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第21練:批量獲取文件夾中文件名

    目錄 一、目標(biāo)1:使用python爬取指定文件夾中的文件名 二、目標(biāo)2:在文件夾指定目錄打開命令行 方法一:使用 os 模塊 將 /path/to/folder 替換為實際的文件夾路徑。 os.listdir() 函數(shù)用于獲取指定文件夾中的文件名列表,然后可以遍歷列表并處理每個文件名 方法二:使用 glob 模塊

    2024年02月09日
    瀏覽(28)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第10練:re的正則匹配、文件夾創(chuàng)建、圖片下載

    【網(wǎng)絡(luò)安全帶你練爬蟲-100練】第10練:re的正則匹配、文件夾創(chuàng)建、圖片下載

    目錄 一、目標(biāo)1:正則匹配圖片的URL 二、目標(biāo)2:創(chuàng)建文件夾 三、目標(biāo)3:保存圖片到test文件夾中 ?四、網(wǎng)絡(luò)安全小圈子 URL位置 我們可以找到img都在這個標(biāo)簽里面 ? ? 請求方法GET ? 提取URL位置 需要掌握的 目標(biāo)標(biāo)簽如下: 需要提取的內(nèi)容如下: (多加了一個為轉(zhuǎn)義字

    2024年02月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包