中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Python解釋為什么百度已死-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

南漳ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18980820575(備注:SSL證書(shū)合作)期待與您的合作!

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Python解釋為什么百度已死,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Python3爬蟲(chóng)百度一下,坑死你?

一、寫(xiě)在前面

這個(gè)標(biāo)題是借用的路人甲大佬的一篇文章的標(biāo)題(百度一下,坑死你),而且這次的爬蟲(chóng)也是看了這篇文章后才寫(xiě)出來(lái)的,感興趣的可以先看下這篇文章。

前段時(shí)間有篇文章《搜索引擎百度已死》引起了很多討論,而百度對(duì)此的回復(fù)是:百家號(hào)的內(nèi)容在百度搜索結(jié)果中不超過(guò)10%。但是這個(gè)10%是第一頁(yè)的10%還是所有數(shù)據(jù)的10%,我們不得而知,但是由于很多人都只會(huì)看第一頁(yè)的內(nèi)容,而如果這第一頁(yè)里有十分之一的內(nèi)容都來(lái)自于百家號(hào),那搜索體驗(yàn)恐怕不怎么好吧?然后我這次寫(xiě)的爬蟲(chóng)就是把百度上面的熱搜事件都搜索一下,然后把搜索結(jié)果的第一頁(yè)上的標(biāo)題鏈接提取出來(lái),最后對(duì)這些鏈接進(jìn)行一些簡(jiǎn)單的分析,看看百家號(hào)的內(nèi)容占比能有多少。

二、具體步驟

1.頁(yè)面分析

首先打開(kāi)網(wǎng)頁(yè)查看百度的熱點(diǎn)事件,頁(yè)面如下:

Python解釋為什么百度已死

這次我主要對(duì)今日熱點(diǎn)、娛樂(lè)熱點(diǎn)、體育熱點(diǎn)進(jìn)行了爬取,每個(gè)熱點(diǎn)下面有50條熱點(diǎn)事件,然后對(duì)每個(gè)事件進(jìn)行搜索,比如第一條--馬云的福字:

Python解釋為什么百度已死

可以看到搜索結(jié)果的第一頁(yè)上有很多標(biāo)題,然后對(duì)這些標(biāo)題的鏈接進(jìn)行爬取,再保存到一個(gè)txt文件里,最后對(duì)這些數(shù)據(jù)進(jìn)行分析。

2.主要代碼

(1)獲取真實(shí)鏈接

這些搜索結(jié)果頁(yè)面上的鏈接都是經(jīng)過(guò)加密的,如下圖:

Python解釋為什么百度已死

所以我們爬取得到的鏈接都是http://www.baidu.com/link?url=VfA2jxmqJdYt1U-G0wHjWIXglVEi-WCxpa8aaMCeOzkqK-c5CgYngPiJT6_-kmWE3ePTHCpgYlX5oq9SQDJgEukKCY19o26JlS1pEIgnlupbw0Ss9Ro3gQjYVuJljdxyBPfiDUJhM9ODV_0mKnrUhESJ95Az1OnB6mMScmCXiUi這種,但是我們點(diǎn)進(jìn)去之后就能得到真實(shí)的鏈接https://www.baidu.com/s?tn=news&rtt=1&bsst=1&wd=%E9%A9%AC%E4%BA%91%E7%9A%84%E7%A6%8F%E5%AD%97&cl=2&origin=ps,那我們要怎么得到真實(shí)的鏈接呢?相關(guān)代碼如下:

def get_real_url(self, fake_url):
    # 獲取真實(shí)的鏈接
    try:
        res = requests.get(fake_url, headers=self.headers)
        real_url = res.url
    except Exception as e:
        print(e)

(2)數(shù)據(jù)處理

這里我總共爬取了1051條鏈接,如下圖:

Python解釋為什么百度已死

但是這樣的數(shù)據(jù)是明顯沒(méi)有辦法進(jìn)行分析的,所以需要進(jìn)行一下處理,比如將https://baijiahao.baidu.com/s?id=1624053575252859170&wfr=spider&for=pc變成baijiahao.baidu,相關(guān)代碼如下:

href = "https://baijiahao.baidu.com/s?id=1624053575252859170&wfr=spider&for=pc"
match = re.match("(http[s]?://.+?[com,cn,net]/)", href) 
href = match.group()
href = href.replace('cn', 'com').replace('net', 'com')
href = href[href.index(':') + 3:].rstrip('.com/')
print(href)
# baijiahao.baidu

(3)數(shù)據(jù)分析

 這里主要使用了matplotlib繪圖幫助我們分析數(shù)據(jù)。首先需要統(tǒng)計(jì)出各個(gè)網(wǎng)站出現(xiàn)的次數(shù),然后進(jìn)行一個(gè)排序,得到排名前十的網(wǎng)站,結(jié)果如下(前面是網(wǎng)站,后面是出現(xiàn)次數(shù)):

https://baijiahao.baidu.com/  188
https://www.baidu.com/  114
http://www.sohu.com/  60
https://news.china.com/  29
http://www.guangyuanol.cn/  27
http://image.baidu.com/ 24
http://3g.163.com/  20
https://sports.qq.com/  19
https://www.iqiyi.com/ 17
https://baike.baidu.com/  17

可以看到百家號(hào)出現(xiàn)的次數(shù)是最多的。然后進(jìn)行繪圖分析,這里主要是繪圖的代碼,因?yàn)槭褂玫氖前俜謹(jǐn)?shù),所以在繪圖的時(shí)候會(huì)稍微麻煩一點(diǎn):

def plot(self, index_list, value_list):
   b = self.ax.barh(range(len(index_list)), value_list, color='blue', height=0.8)
   # 添加數(shù)據(jù)標(biāo)簽
    for rect in b:
        w = rect.get_width()
        self.ax.text(w, rect.get_y() + rect.get_height() / 2, '{}%'.format(w),
                     ha='left', va='center')
    # 設(shè)置Y軸刻度線(xiàn)標(biāo)簽
    self.ax.set_yticks(range(len(index_list)))
    self.ax.set_yticklabels(index_list)
    # 設(shè)置X軸刻度線(xiàn)
    lst = ["{}%".format(i) for i in range(0, 20, 2)]
    self.ax.set_xticklabels(lst)

    plt.subplots_adjust(left=0.25)
    plt.xlabel("占比")
    plt.ylabel("網(wǎng)站")
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.savefig("bjh.jpg")
    print("已保存為bjh.jpg!")

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

由于每個(gè)事件的搜索結(jié)果都是不同的,所以在解析網(wǎng)頁(yè)的時(shí)候可能會(huì)出錯(cuò),然后就是請(qǐng)求頻率太高了會(huì)被ban掉,而且有時(shí)候UA會(huì)被識(shí)別出來(lái)然后就被ban掉了,運(yùn)行情況如下圖:

Python解釋為什么百度已死

最后看一下繪制出來(lái)的圖片:

Python解釋為什么百度已死

可以看到百家號(hào)的內(nèi)容占比達(dá)到了17%,而排在第二的也是百度自家的產(chǎn)品,內(nèi)容占比也達(dá)到了10%。當(dāng)然了,由于搜索的都是百度上的熱搜事件,所以得到的結(jié)果百度自家的內(nèi)容會(huì)多一點(diǎn),但是光百家號(hào)的內(nèi)容就占了17%,是不是也太多了點(diǎn)呢?

上述就是小編為大家分享的Python解釋為什么百度已死了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

網(wǎng)站題目:Python解釋為什么百度已死-創(chuàng)新互聯(lián)
URL鏈接:http://m.rwnh.cn/article36/dopisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、域名注冊(cè)、網(wǎng)站改版、網(wǎng)站營(yíng)銷(xiāo)、虛擬主機(jī)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
敖汉旗| 天全县| 梨树县| 江油市| 吴旗县| 长垣县| 京山县| 沙雅县| 河间市| 剑河县| 合肥市| 都江堰市| 资源县| 凭祥市| 舒城县| 喀喇沁旗| 广宁县| 沭阳县| 吉安县| 永平县| 南城县| 兴海县| 乐东| 南漳县| 明星| 丹巴县| 瑞金市| 霞浦县| 嫩江县| 务川| 改则县| 黄梅县| 老河口市| 廉江市| 松滋市| 滁州市| 马山县| 遵化市| 嘉禾县| 邻水| 荥经县|