日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

分页请求json数据_Python爬虫入门教程 28-100 虎嗅网文章数据抓取 pyspider

發布時間:2025/3/8 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分页请求json数据_Python爬虫入门教程 28-100 虎嗅网文章数据抓取 pyspider 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 虎嗅網文章數據----寫在前面

今天繼續使用pyspider爬取數據,很不幸,虎嗅資訊網被我選中了,網址為 https://www.huxiu.com/ 爬的就是它的資訊頻道,本文章僅供學習交流使用,切勿用作其他用途。

常規操作,分析待爬取的頁面

拖拽頁面到最底部,會發現一個加載更多按鈕,點擊之后,抓取一下請求,得到如下地址

2. 虎嗅網文章數據----分析請求

查閱該請求的方式和地址,包括參數,如下圖所示

得到以下信息 1. 頁面請求地址為:https://www.huxiu.com/v2_action/article_list 2. 請求方式:POST 3. 請求參數比較重要的是一個叫做page的參數

我們只需要按照上面的內容,把pyspider代碼部分編寫完畢即可。 on_start 函數內部編寫循環事件,注意到有個數字2025這個數字,是我從剛才那個請求中看到的總頁數。你看到這篇文章的時候,這個數字應該變的更大了。

@every(minutes=24 * 60)def on_start(self):for page in range(1,2025):print("正在爬取第 {} 頁".format(page))self.crawl('https://www.huxiu.com/v2_action/article_list', method="POST",data={"page":page},callback=self.parse_page,validate_cert=False)

頁面生成完畢之后,開始調用parse_page 函數,用來解析 crawl() 方法爬取 URL 成功后返回的 Response 響應。

@config(age=10 * 24 * 60 * 60)def parse_page(self, response):content = response.json["data"]doc = pq(content)lis = doc('.mod-art').items()data = [{'title': item('.msubstr-row2').text(),'url':'https://www.huxiu.com'+ str(item('.msubstr-row2').attr('href')),'name': item('.author-name').text(),'write_time':item('.time').text(),'comment':item('.icon-cmt+ em').text(),'favorites':item('.icon-fvr+ em').text(),'abstract':item('.mob-sub').text()} for item in lis ] return data

最后,定義一個 on_result() 方法,該方法專門用來獲取 return 的結果數據。這里用來接收上面 parse_page() 返回的 data 數據,在該方法可以將數據保存到 MongoDB 中。

# 頁面每次返回的數據 def on_result(self,result):if result:self.save_to_mongo(result) # 存儲到mongo數據庫def save_to_mongo(self,result):df = pd.DataFrame(result) content = json.loads(df.T.to_json()).values()if collection.insert_many(content):print('存儲數據成功')# 暫停1stime.sleep(1)

好的,保存代碼,修改每秒運行次數和并發數

點擊run將代碼跑起來,不過當跑起來之后,就會發現抓取一個頁面之后程序就停止了, pyspider 以 URL的 MD5 值作為 唯一 ID 編號,ID 編號相同,就視為同一個任務, 不會再重復爬取。

GET 請求的分頁URL 一般不同,所以 ID 編號會不同,能夠爬取多頁。 POST 請求的URL是相同的,爬取第一頁之后,后面的頁數便不會再爬取。

解決辦法,需要重新寫下 ID 編號的生成方式,在 on_start() 方法前面添加下面代碼即可:

def get_taskid(self,task):return md5string(task['url']+json.dumps(task['fetch'].get('data','')))

基本操作之后,文章入庫

總結

以上是生活随笔為你收集整理的分页请求json数据_Python爬虫入门教程 28-100 虎嗅网文章数据抓取 pyspider的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲国产一区在线观看 | 波多野结衣久久精品 | 18成人免费观看网站下载 | 超碰在线观看97 | 日韩视频福利 | 日吊视频| 中文精品久久 | 少妇人妻在线视频 | 91成年版| 中文在线字幕免费观看 | 日本成人三级电影 | 人妻换人妻a片爽麻豆 | 欧美视频一区二区三区四区 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 免费观看日韩毛片 | 亚洲男人第一网站 | 伊人情人综合 | 欧美黄色免费 | 豆花av在线 | 久草热在线观看 | 久久精品欧美一区 | 国产精品免费大片 | 亚洲黄色影院 | 亚洲高清中文字幕 | 久久精精品久久久久噜噜 | 激情五月婷婷久久 | 亚洲免费视频观看 | 色婷婷一区 | 经典三级在线视频 | 亚洲色图视频在线 | 九九九九九热 | 精品国产乱码久久久久久108 | 午夜久久精品 | 午夜免费网 | 性自由色xxxx免费视频 | 欧洲亚洲另类 | 爱逼综合网 | 亚洲欧美自拍偷拍 | 日韩欧美高清在线视频 | 亚洲国产精品999 | 韩国一级淫一片免费放 | 免费av导航 | 久久精品69 | 亚洲国产精品成人综合久久久 | 清纯唯美亚洲色图 | 在线午夜电影 | 操校花视频 | 一区二区黄色 | 午夜免费观看 | 美女又爽又黄免费视频 | 中文字幕高清一区 | 国产福利免费视频 | 伊人视屏| 奇米网久久 | 精品久久久无码中文字幕边打电话 | 无码人妻精品一区二区蜜桃色欲 | 欧美午夜精品一区二区三区电影 | 色综合中文网 | 9l蝌蚪porny中文自拍 | 视频黄页在线观看 | 国产精品人人爽人人爽 | 国产男女在线 | 蜜桃久久久aaaa成人网一区 | 日本黄在线观看 | 操欧美女 | 成人激情视频在线观看 | 污污的网站在线免费观看 | 日韩精品免费一区二区三区 | 午夜在线视频播放 | sm久久捆绑调教精品一区 | 神马午夜我不卡 | 欧美大屁股熟妇bbbbbb | 操穴网站 | 在线观看污污网站 | 亚洲在线视频播放 | 亚洲国产精品久久久久 | 欧美激情综合五月色丁香 | 一区二区三区欧美在线 | 欧美亚洲在线 | 国产一区二区欧美日韩 | 亚洲最大黄色网址 | 黑人一级视频 | 欧美一级免费观看 | 黑人高潮一区二区三区在线看 | 伊人久久av| 伊人亚洲综合 | 国产一级免费观看 | 光明影院手机版在线观看免费 | 亚欧成人精品一区二区 | 97人人澡人人爽人人模亚洲 | 总裁边开会边做小娇妻h | 91丨九色丨蝌蚪丨丝袜 | 亚洲自拍偷拍第一页 | 免费久久久久久 | 日韩精品一区三区 | 一区二区三区在线 | 亚洲最大成人综合网 | 99爱爱视频 | 岛国在线视频 |