国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 爬取CSDN的極客頭條

CatalpaFlat / 3313人閱讀

摘要:爬取的極客頭條工具分析使用瀏覽器調試面板分析網頁結構以及網絡請求,容易知道,每一個頭條信息結構如圖所示因此,我們可以通過定位元素,同時,根據面板的網絡請求分析,第一次加載更多數據的請求為第二次的為上述請求已精簡,刪除了原有請求的部分參數

Python 爬取CSDN的極客頭條 工具

Python

Python:requests

Python:BeautifulSoup

分析

使用瀏覽器調試面板分析網頁結構以及網絡請求,容易知道,每一個頭條信息結構如圖所示

因此,我們可以通過 dd.tracking-ad > span > a定位元素,同時,根據Network面板的網絡請求分析,第一次加載更多數據的請求為

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

上述請求已精簡,刪除了原有請求的部分參數

也就是說,初始加載更多數據的時候,from參數為-,后續的請求,from是前一次請求所返回來的值,因此,我們可以用Python爬取數據了

代碼
# -*- 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: 加載更多的時候的標志
        :param type: 極客頭條的類型
        :param size: 每頁的數目
        :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
# 這里控制獲取多少頁的內容
while i < 10:
    result = cs.geek(_from=_from)
    items.extend(result["items"])
    _from = result["from"]
    i = i + 1
print(items)

項目地址: 模擬京東登錄

吐槽QQ群: 173318043

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44480.html

相關文章

  • 16個幫助開發者成長的技術社區

    摘要:掘金網址掘金是一個幫助開發者成長的社區,是給開發者用的,給設計師用的,和給產品經理用的。就是一個以討論服務器數據庫等技術為主的自由開放的技術社區。網址社區為國內最大最具影響力的開源技術社區,致力于的技術研究。 1.StackOverflow網址:https://stackoverflow.com/Stack Overflow是最受程序員歡迎的IT技術問答網站,而且也是內容最豐富的社區之...

    JerryZou 評論0 收藏0
  • 16個幫助開發者成長的技術社區

    摘要:掘金網址掘金是一個幫助開發者成長的社區,是給開發者用的,給設計師用的,和給產品經理用的。就是一個以討論服務器數據庫等技術為主的自由開放的技術社區。網址社區為國內最大最具影響力的開源技術社區,致力于的技術研究。 1.StackOverflow網址:https://stackoverflow.com/Stack Overflow是最受程序員歡迎的IT技術問答網站,而且也是內容最豐富的社區之...

    Integ 評論0 收藏0
  • 技術文章寫作及運營的技巧:分析篇 | 什么樣的文章受歡迎?

    摘要:值得注意的是,文章在微博上的傳播時間比較短。由于我的粉絲數量還不是非常多,我只能從中挑選中閱讀量最高的一篇文章。在自己的關注人數上升后,再轉到這些問題上,要不會吃力不討好。 對于以技術為核心的技術博客來說,人們是沖著他們需要的內容去的,絕大多數情況下都不是在閑逛。如果你的網站里沒有他想要的東西的話,他便會離開,人們是出于目的去搜索,基于動機,而不是無聊的在閑逛。無聊的話,他們更多的會去...

    felix0913 評論0 收藏0

發表評論

0條評論

CatalpaFlat

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<