摘要:爬取的極客頭條工具分析使用瀏覽器調(diào)試面板分析網(wǎng)頁(yè)結(jié)構(gòu)以及網(wǎng)絡(luò)請(qǐng)求,容易知道,每一個(gè)頭條信息結(jié)構(gòu)如圖所示因此,我們可以通過(guò)定位元素,同時(shí),根據(jù)面板的網(wǎng)絡(luò)請(qǐng)求分析,第一次加載更多數(shù)據(jù)的請(qǐng)求為第二次的為上述請(qǐng)求已精簡(jiǎn),刪除了原有請(qǐng)求的部分參數(shù)
Python 爬取CSDN的極客頭條 工具
Python
Python:requests
Python:BeautifulSoup
分析使用瀏覽器調(diào)試面板分析網(wǎng)頁(yè)結(jié)構(gòu)以及網(wǎng)絡(luò)請(qǐng)求,容易知道,每一個(gè)頭條信息結(jié)構(gòu)如圖所示
因此,我們可以通過(guò) dd.tracking-ad > span > a定位元素,同時(shí),根據(jù)Network面板的網(wǎng)絡(luò)請(qǐng)求分析,第一次加載更多數(shù)據(jù)的請(qǐng)求為
http://geek.csdn.net/service/news/get_news_list?from=-&size=20&type=HackCount
第二次的為:
http://geek.csdn.net/service/news/get_news_list?from=6:245113&size=20&type=HackCount
上述請(qǐng)求已精簡(jiǎn),刪除了原有請(qǐng)求的部分參數(shù)
也就是說(shuō),初始加載更多數(shù)據(jù)的時(shí)候,from參數(shù)為-,后續(xù)的請(qǐng)求,from是前一次請(qǐng)求所返回來(lái)的值,因此,我們可以用Python爬取數(shù)據(jù)了
代碼# -*- coding: UTF-8 -*- from bs4 import BeautifulSoup import requests import time class CS: def __init__(self): # self.username = username pass def geek(self, _from=None, type="HackCount", size=20): """ url: http://geek.csdn.net/, more: http://geek.csdn.net/service/news/get_news_list?from=-&size=20&type=HackCount :param _from: 加載更多的時(shí)候的標(biāo)志 :param type: 極客頭條的類(lèi)型 :param size: 每頁(yè)的數(shù)目 :return: """ start = "-" if _from: timestamp = int(time.time()) url = "http://geek.csdn.net/service/news/get_news_list?" "from=%s&size=%d&type=%s&_=%d" % (_from, size, type, timestamp) req = requests.get(url) js = req.json() start = js["from"] soup = BeautifulSoup(js["html"], "lxml") else: url = "http://geek.csdn.net/" req = requests.get(url) soup = BeautifulSoup(req.content, "lxml") results = soup.select("dd.tracking-ad > span > a") items = [] for result in results: item = { "href": result["href"], "title": result.string } items.append(item) return { "from": start, "items": items } cs = CS() items = [] _from = "" i = 0 # 這里控制獲取多少頁(yè)的內(nèi)容 while i < 10: result = cs.geek(_from=_from) items.extend(result["items"]) _from = result["from"] i = i + 1 print(items)
項(xiàng)目地址: 模擬京東登錄
吐槽QQ群: 173318043
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44480.html
摘要:掘金網(wǎng)址掘金是一個(gè)幫助開(kāi)發(fā)者成長(zhǎng)的社區(qū),是給開(kāi)發(fā)者用的,給設(shè)計(jì)師用的,和給產(chǎn)品經(jīng)理用的。就是一個(gè)以討論服務(wù)器數(shù)據(jù)庫(kù)等技術(shù)為主的自由開(kāi)放的技術(shù)社區(qū)。網(wǎng)址社區(qū)為國(guó)內(nèi)最大最具影響力的開(kāi)源技術(shù)社區(qū),致力于的技術(shù)研究。 1.StackOverflow網(wǎng)址:https://stackoverflow.com/Stack Overflow是最受程序員歡迎的IT技術(shù)問(wèn)答網(wǎng)站,而且也是內(nèi)容最豐富的社區(qū)之...
摘要:掘金網(wǎng)址掘金是一個(gè)幫助開(kāi)發(fā)者成長(zhǎng)的社區(qū),是給開(kāi)發(fā)者用的,給設(shè)計(jì)師用的,和給產(chǎn)品經(jīng)理用的。就是一個(gè)以討論服務(wù)器數(shù)據(jù)庫(kù)等技術(shù)為主的自由開(kāi)放的技術(shù)社區(qū)。網(wǎng)址社區(qū)為國(guó)內(nèi)最大最具影響力的開(kāi)源技術(shù)社區(qū),致力于的技術(shù)研究。 1.StackOverflow網(wǎng)址:https://stackoverflow.com/Stack Overflow是最受程序員歡迎的IT技術(shù)問(wèn)答網(wǎng)站,而且也是內(nèi)容最豐富的社區(qū)之...
摘要:值得注意的是,文章在微博上的傳播時(shí)間比較短。由于我的粉絲數(shù)量還不是非常多,我只能從中挑選中閱讀量最高的一篇文章。在自己的關(guān)注人數(shù)上升后,再轉(zhuǎn)到這些問(wèn)題上,要不會(huì)吃力不討好。 對(duì)于以技術(shù)為核心的技術(shù)博客來(lái)說(shuō),人們是沖著他們需要的內(nèi)容去的,絕大多數(shù)情況下都不是在閑逛。如果你的網(wǎng)站里沒(méi)有他想要的東西的話(huà),他便會(huì)離開(kāi),人們是出于目的去搜索,基于動(dòng)機(jī),而不是無(wú)聊的在閑逛。無(wú)聊的話(huà),他們更多的會(huì)去...
閱讀 2673·2021-11-11 16:54
閱讀 3671·2021-08-16 10:46
閱讀 3451·2019-08-30 14:18
閱讀 3045·2019-08-30 14:01
閱讀 2731·2019-08-29 14:15
閱讀 2016·2019-08-29 11:31
閱讀 3093·2019-08-29 11:05
閱讀 2597·2019-08-26 11:54