那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python 爬取CSDN的極客頭條

馬哥Linux運維 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-21 14:58 ? 次閱讀

這兩周花了點時間讀了《Python網(wǎng)絡(luò)數(shù)據(jù)采集》,內(nèi)容不多,不到200頁,但是非常豐富,有入門,有提高,有注意事項,有經(jīng)驗之談,有原理,有分析,讀完受益匪淺。書中講了很多反爬蟲、圖片驗證碼之類的東西,不過感謝csdn的開放性,這些都沒有。所以第一個練習(xí),就是爬取csdn的極客頭條的更新文章。

1、思路

思路比較簡單,首先是登錄,然后爬取頁面的更新文章名稱和鏈接。要注意的一點是,極客頭條的列表刷新是動態(tài)的,只有頁面有滾動條并且往下拉的時候,才會加載新的文章列表。我用豎屏顯示器試了下,沒有滾動條的情況下,默認顯示20條的文章列表,結(jié)果不能加載新的文章列表,應(yīng)該算是bug。

2、準備

通過瀏覽器的開發(fā)人員工具抓包,可以發(fā)現(xiàn)極客頭條申請新列表的時候URL格式如下:

http://geek.csdn.net/service/news/get_news_list?jsonpcallback=jQuery203014439105321047596_1516862462757&username=[賬戶名]&from=-&size=20&type=hackernewsv2_new&_=1516862462758

請求參數(shù)

jsonpcallback:

jQuery20302827217349787545_1516863701413 #該參數(shù)是jQuery框架自動生成的匿名回調(diào)函數(shù)的函數(shù)名,用于ajax獲取數(shù)據(jù)時的數(shù)據(jù)處理,看網(wǎng)頁源代碼,應(yīng)該是利用getJSON,所以是頁面端生成的參數(shù),可以隨意填寫

username: [賬戶名]

from:

6:252765 #這個參數(shù)代表的是下一次請求文章列表時,文章的起始編號,如果是第一次請求列表,則這里填‘-’(短杠),和上面例子中一樣,下次編號會在本次請求返回的JSON數(shù)據(jù)中攜帶

size:

20 #本次請求的文章條目數(shù),我試過1000都成功了。。。

type:

hackernewsv2_new #文章類型,類型在首頁的“最熱 最新 業(yè)界”等等那一行小標題,選擇的分類不同,這個參數(shù)不同,具體抓包可見

_:

1516863701415 #沒什么用,就是第一個參數(shù)下短杠后面的數(shù)字累加,實際測試沒有也可以

通過查找資料和抓包,發(fā)現(xiàn)csdn的登錄還是很簡單的,只要用戶名密碼,不需要驗證碼等等,抓包可以看到請求參數(shù):

gps:

39.890503,116.431339

username:

[賬戶名]

password:

[密碼] #抓包的話這里是明碼,發(fā)出去的話應(yīng)該是加密的

rememberMe:

true #是否記住密碼

lt:

LT-448149-vgNusKFi3i7wBRIZUrzCFLDfoDVP34 #這個參數(shù)是在登錄主頁面中的,需要自己解析出來,數(shù)值隨機,每次登錄需要獲取

execution:

e3s1 #目前是固定值,和網(wǎng)文對比這個值不同,所以還是每次登錄獲取的好

_eventId:

submit #固定值,就是代表提交

登錄時要注意的是,csdn為了防爬蟲,要求HTTP頭的User-Agent字段必須是真實的,所以我用了抓包里面真實的瀏覽器填充的字段,否則會一直登錄失敗,返回登錄頁。

通過抓包可以看到,請求文章后,返回的是json數(shù)據(jù),其中‘from’自動用于下次請求,‘html’字段就是返回的網(wǎng)頁,utf-8編碼的Unicode字符串,Python默認用的就是Unicode,所以取出html字段的數(shù)據(jù)后自動轉(zhuǎn)為了漢字、符號等,然后解析其中的class類型為‘title’的鏈接,就可以獲得文章鏈接和名稱。

3、代碼(非常短)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85037
  • csdn
    +關(guān)注

    關(guān)注

    2

    文章

    17

    瀏覽量

    6861

原文標題:Python 爬取CSDN的極客頭條

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    python實現(xiàn)網(wǎng)頁爬蟲圖片

    來實現(xiàn)這樣一個簡單的爬蟲功能,把我們想要的代碼取到本地,功能有點類似我們之前學(xué)過的批處理。下面就看看如何使用python來實現(xiàn)這樣一個功能,主要分為三步,如下:一. 獲取整個頁面數(shù)據(jù)首先我們可以先
    發(fā)表于 04-05 15:32

    python

    python學(xué)習(xí)1.數(shù)據(jù)2.圖片
    發(fā)表于 09-21 18:18

    采用xpath網(wǎng)站內(nèi)容

    xpathmooc網(wǎng)課程
    發(fā)表于 04-11 12:01

    基于Python3對攜程網(wǎng)頁上北京五星級酒店列表的

    Python3 攜程網(wǎng)[1] 根據(jù)好評優(yōu)先順序,獲取北京五星級酒店列表
    發(fā)表于 04-19 16:25

    基于Python實現(xiàn)一只小爬蟲拉勾網(wǎng)職位信息的方法

    通俗易懂的分析如何用Python實現(xiàn)一只小爬蟲,拉勾網(wǎng)的職位信息
    發(fā)表于 05-17 06:54

    python音頻文件的步驟

    python爬蟲音頻文件
    發(fā)表于 08-22 14:23

    Python豆瓣電影信息和存儲數(shù)據(jù)庫

    Python——豆瓣電影信息并存儲數(shù)據(jù)庫
    發(fā)表于 03-11 11:19

    百度92年程序員因“篡改數(shù)據(jù)”被抓

    百度92年程序員因“篡改數(shù)據(jù)”被抓—— 技術(shù)人員的新聞圈!CSDN 的讀者朋友們早上好哇,「頭條」來啦,快來看今天都有哪些值得我們技術(shù)人關(guān)注的重要新聞吧。整理 | 張紅月出品 |
    發(fā)表于 07-28 07:04

    python基礎(chǔ)語法及流程控制

    爬蟲復(fù)習(xí)1.python基礎(chǔ)python基礎(chǔ)語法 流程控制 函數(shù)封裝2.防措施整體防User-AgentrefererIP代理池Cookie代理池 各自防
    發(fā)表于 08-31 07:41

    豆瓣電影Top250信息

    通過本案例[豆瓣電影Top250信息]鍛煉除正則表達式之外兩種信息解析方式:Xpath和PyQuery。url地址:https://movie.douban.com/top25
    發(fā)表于 03-23 15:47

    Python如何實時變化的WebSocket數(shù)據(jù)

    Python 中的網(wǎng)絡(luò)請求庫非常多,Requests 是最常用的請求庫之一,它可以模擬發(fā)送網(wǎng)絡(luò)請求。但是這些請求都是基于 HTTP 協(xié)議的。在面對 WebSocket 的時候 Requests 就發(fā)揮不料作用了,必須使用能夠連接 WebSocket 的庫。
    的頭像 發(fā)表于 03-11 09:31 ?3626次閱讀
    <b class='flag-5'>Python</b>如何<b class='flag-5'>爬</b><b class='flag-5'>取</b>實時變化的WebSocket數(shù)據(jù)

    如何安裝第三方模塊4K壁紙

    如何安裝第三方模塊4K壁紙
    發(fā)表于 12-27 10:39 ?0次下載

    華為發(fā)布麒麟 990 芯片;蘋果召回部分電源插頭轉(zhuǎn)換器;KDevelop 5.4.2 發(fā)布? | 頭條...

    快來收聽頭條音頻版吧,智能播報由標貝科技提供技術(shù)支持?!?b class='flag-5'>CSDN
    發(fā)表于 01-11 13:24 ?3次下載
    華為發(fā)布麒麟 990 芯片;蘋果召回部分電源插頭轉(zhuǎn)換器;KDevelop 5.4.2 發(fā)布? | <b class='flag-5'>極</b><b class='flag-5'>客</b><b class='flag-5'>頭條</b>...

    如何用python抖音app數(shù)據(jù)

    記錄一下如何用pythonapp數(shù)據(jù),本文以抖音視頻app為例。
    的頭像 發(fā)表于 03-16 09:07 ?5410次閱讀

    Scrapy怎么Python文件

    我們介紹了Scrapy框架運行基本原理,緊接著我們介紹了如何利用Scrapy文本數(shù)據(jù)
    的頭像 發(fā)表于 02-24 15:16 ?646次閱讀
    Scrapy怎么<b class='flag-5'>爬</b><b class='flag-5'>取</b><b class='flag-5'>Python</b>文件
    爱赢娱乐| 高清| 百家乐官网注码论坛| 7人百家乐官网桌子| 3u娱乐城| 百家乐官网游戏客户端| 百家乐的保单打法| 百家乐官网怎么计算概率| 百家乐网站开户| 威尼斯人娱乐棋牌平台| 百家乐官网获胜秘决| 网上百家乐官网游戏玩法 | bet365娱乐场下载| 百家乐官网游戏网上投注| 立即博百家乐娱乐城| 云顶国际平台| 状元百家乐官网的玩法技巧和规则 | 柯坪县| 澳门百家乐官网注册| 大发888完整客户端| 揭秘百家乐官网百分之50| 百家乐赌钱| 海滨湾国际娱乐城| 24楼风水化解| 做生意戴什么珠子招财| 德州扑克读牌| 百家乐官网是怎么赌法| 盈得利百家乐娱乐城| 单张百家乐官网论坛| 百家乐桌面| 莱州市| 百家乐2号机器投注技巧| 六枝特区| 百家乐游戏怎么刷钱| 和静县| 百家乐双龙出海注码法| 百家乐官网棋牌技巧| 百家乐技巧心得| 阳新县| 赌百家乐的计划跟策略| 百家乐官网看不到视频|