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

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

一、分析目標(biāo):

二、代碼實(shí)現(xiàn)

目標(biāo)1:對(duì)于捕獲的URL內(nèi)嵌發(fā)包

目標(biāo)2:找到電話和郵箱的位置

目標(biāo)3:提取電話和郵箱

三、完整代碼

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


(注:需要帶上登錄成功后的cookie發(fā)包)

一、分析目標(biāo):

點(diǎn)擊進(jìn)去爬取每個(gè)企業(yè)里面的電話、郵箱

(我們是來(lái)投簡(jiǎn)歷的,切勿干非法的事情)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

每個(gè)單位的URL記下來(lái)

(一定是在前一個(gè)頁(yè)面能找到的,不然只能跳轉(zhuǎn)進(jìn)來(lái)是吧)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

我們可以看到這個(gè)URL就是他跳轉(zhuǎn)的URL

其實(shí)我們前面已經(jīng)提前爬取了每個(gè)單位的這個(gè)URL

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

思路:

對(duì)我們爬取的URL發(fā)包,并對(duì)數(shù)據(jù)包進(jìn)行處理,提取我們需要的數(shù)據(jù)



二、代碼實(shí)現(xiàn)

目標(biāo)1:對(duì)于捕獲的URL內(nèi)嵌發(fā)包

        for u in [link]:
            html2 = get_page(u)
            soup2 = BeautifulSoup(html2, 'lxml')
            email_phone_div = soup2.find('div', attrs={'class': 'index_detail__JSmQM'})

目標(biāo)2:找到電話和郵箱的位置

(1)找到他的上一級(jí)(也就是都包含他們的)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

        for u in [link]:
            html2 = get_page(u)
            soup2 = BeautifulSoup(html2, 'lxml')
            email_phone_div = soup2.find('div', attrs={'class': 'index_detail__JSmQM'})

目標(biāo)3:提取電話和郵箱

(1)首先加一個(gè)if判空

把phone和email的上一級(jí)進(jìn)行判空,不為空再繼續(xù)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

            if email_phone_div is not None:
                phone_div = email_phone_div.find('div', attrs={'class': 'index_first__3b_pm'})
                email_div = email_phone_div.find('div', attrs={'class': 'index_second__rX915'})

                #中間為提取email和phone代碼

            else:
                phone = ''
                email = ''

            #遍歷一遍就寫(xiě)入一個(gè)數(shù)據(jù)
            csv_w.writerow((title.strip(), link, type_texts, money, email, phone))

(2)對(duì)phone進(jìn)行提取

首先也是對(duì)上一級(jí)標(biāo)簽判空,不為空才繼續(xù)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

                if phone_div is not None:
                    phone_element = phone_div.find('span', attrs={'class': 'link-hover-click'})
                    if phone_element is not None:
                        phone = phone_element.find('span',attrs={'class':'index_detail-tel__fgpsE'}).text
                    else:
                        phone = ''
                else:
                    phone = ''

(3)對(duì)email提取

和phone一樣先對(duì)上一級(jí)判空,不為空再繼續(xù)提取

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

                if email_div is not None:
                    email_element = email_div.find('span', attrs={'class': 'index_detail-email__B_1Tq'})
                    if email_element is not None:
                        email = email_element.text
                    else:
                        email = ''
                else:
                    email = ''

(3)對(duì)內(nèi)嵌請(qǐng)求處理的完整代碼

        for u in [link]:
            html2 = get_page(u)
            soup2 = BeautifulSoup(html2, 'lxml')
            email_phone_div = soup2.find('div', attrs={'class': 'index_detail__JSmQM'})

            if email_phone_div is not None:
                phone_div = email_phone_div.find('div', attrs={'class': 'index_first__3b_pm'})
                email_div = email_phone_div.find('div', attrs={'class': 'index_second__rX915'})

                if phone_div is not None:
                    phone_element = phone_div.find('span', attrs={'class': 'link-hover-click'})
                    if phone_element is not None:
                        phone = phone_element.find('span',attrs={'class':'index_detail-tel__fgpsE'}).text
                    else:
                        phone = ''
                else:
                    phone = ''

                if email_div is not None:
                    email_element = email_div.find('span', attrs={'class': 'index_detail-email__B_1Tq'})
                    if email_element is not None:
                        email = email_element.text
                    else:
                        email = ''
                else:
                    email = ''
            else:
                phone = ''
                email = ''

            csv_w.writerow((title.strip(), link, type_texts, money, email, phone))


三、完整代碼

運(yùn)行結(jié)果

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

爬取寫(xiě)入的數(shù)據(jù)

【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù),【網(wǎng)絡(luò)安全-帶你練爬蟲(chóng)】,爬蟲(chóng),web安全,安全

(cookie需要填上自己的)

import time
import requests
import csv
from bs4 import BeautifulSoup


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 ""



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

        for u in [link]:
            html2 = get_page(u)
            soup2 = BeautifulSoup(html2, 'lxml')
            email_phone_div = soup2.find('div', attrs={'class': 'index_detail__JSmQM'})

            if email_phone_div is not None:
                phone_div = email_phone_div.find('div', attrs={'class': 'index_first__3b_pm'})
                email_div = email_phone_div.find('div', attrs={'class': 'index_second__rX915'})

                if phone_div is not None:
                    phone_element = phone_div.find('span', attrs={'class': 'link-hover-click'})
                    if phone_element is not None:
                        phone = phone_element.find('span',attrs={'class':'index_detail-tel__fgpsE'}).text
                    else:
                        phone = ''
                else:
                    phone = ''

                if email_div is not None:
                    email_element = email_div.find('span', attrs={'class': 'index_detail-email__B_1Tq'})
                    if email_element is not None:
                        email = email_element.text
                    else:
                        email = ''
                else:
                    email = ''
            else:
                phone = ''
                email = ''

            csv_w.writerow((title.strip(), link, type_texts, money, email, phone))


if __name__ == '__main__':
    with open('5.csv', 'a', encoding='utf-8', newline='') as f:
        csv_w = csv.writer(f)
        csv_w.writerow(('公司名', 'URL', '類型', '資金', '電子郵件', '電話號(hào)碼'))
        for page in range(1, 5):
            get_TYC_info(page)
            print(f'第{page}頁(yè)已爬完')
            time.sleep(2)


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

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

GitHub - BLACKxZONE/Treasure_knowledgehttps://github.com/BLACKxZONE/Treasure_knowledge文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-532974.html

到了這里,關(guān)于【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第6練:內(nèi)嵌發(fā)包提取數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

    【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-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)所有元素依次添加進(jìn)列表中 (4)完整

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

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

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

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

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

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

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

    【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-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ò)安全小圈子 其余的不用過(guò)多介紹,前面的練習(xí)都給大家已經(jīng)過(guò)了一遍 其中數(shù)據(jù)解析代碼如下 對(duì)返回的內(nèi)容進(jìn)行UTF-8解碼,不然會(huì)出現(xiàn)亂碼 我們來(lái)爬一下這幾個(gè)標(biāo)題 ?

    2024年02月13日
    瀏覽(22)
  • 【網(wǎng)絡(luò)安全帶你練爬蟲(chóng)-100練】第5練:爬蟲(chóng)的翻頁(yè)操作+錯(cuò)誤情況過(guò)濾

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

    目錄 一、翻頁(yè)分析: 二、代碼邏輯 1、入口程序修改 2、page參數(shù)傳入 三、完整代碼 1、運(yùn)行結(jié)果 2、錯(cuò)誤分析: 3、缺陷代碼: 4、完善邏輯: 5、完善代碼: (說(shuō)在前面,任何邏輯都有很多方法實(shí)現(xiàn),我們先從最笨的講起) (注:其中的cookie需要填自己的) 通過(guò)對(duì)比第一頁(yè)與

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月13日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包