精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Pyspider框架 —— Python爬蟲實戰之爬取 V2EX 網站帖子

開發 后端
一個國人編寫的強大的網絡爬蟲系統并帶有強大的WebUI。采用Python語言編寫,分布式架構,支持多種數據庫后端,強大的WebUI支持腳本編輯器,任務監視器,項目管理器以及結果查看器。

背景:

PySpider:一個國人編寫的強大的網絡爬蟲系統并帶有強大的WebUI。采用Python語言編寫,分布式架構,支持多種數據庫后端,強大的WebUI支持腳本編輯器,任務監視器,項目管理器以及結果查看器。在線示例: http://demo.pyspider.org/

官方文檔: http://docs.pyspider.org/en/l...

Github : https://github.com/binux/pysp...

本文爬蟲代碼 Github 地址:https://github.com/zhisheng17...

更多精彩文章可以在微信公眾號:猿blog 閱讀到,歡迎關注。

說了這么多,我們還是來看正文吧!

前提:

你已經安裝好了Pyspider 和 MySQL-python(保存數據)

如果你還沒安裝的話,請看看我的前一篇文章,防止你也走彎路。

我所遇到的一些錯誤:

首先,本爬蟲目標:使用 Pyspider 框架爬取 V2EX 網站的帖子中的問題和內容,然后將爬取的數據保存在本地。

V2EX 中大部分的帖子查看是不需要登錄的,當然也有些帖子是需要登陸后才能夠查看的。(因為后來爬取的時候發現一直 error ,查看具體原因后才知道是需要登錄的才可以查看那些帖子的)所以我覺得沒必要用到 Cookie,當然如果你非得要登錄,那也很簡單,簡單地方法就是添加你登錄后的 cookie 了。

我們在 https://www.v2ex.com/ 掃了一遍,發現并沒有一個列表能包含所有的帖子,只能退而求其次,通過抓取分類下的所有的標簽列表頁,來遍歷所有的帖子: https://www.v2ex.com/?tab=tech 然后是 https://www.v2ex.com/go/progr... ***每個帖子的詳情地址是 (舉例): https://www.v2ex.com/t/314683...

創建一個項目

在 pyspider 的 dashboard 的右下角,點擊 “Create” 按鈕

替換 on_start 函數的 self.crawl 的 URL:

  1. @every(minutes=24 * 60) 
  2.     def on_start(self): 
  3.         self.crawl('https://www.v2ex.com/', callback=self.index_page, validate_cert=False 
  • self.crawl 告訴 pyspider 抓取指定頁面,然后使用 callback 函數對結果進行解析。
  • @every) 修飾器,表示 on_start 每天會執行一次,這樣就能抓到***的帖子了。
  • validate_cert=False 一定要這樣,否則會報 HTTP 599: SSL certificate problem: unable to get local issuer certificate錯誤

首頁:

點擊綠色的 run 執行,你會看到 follows 上面有一個紅色的 1,切換到 follows 面板,點擊綠色的播放按鈕:

 

 

 

第二張截圖一開始是出現這個問題了,解決辦法看前面寫的文章,后來問題就不再會出現了。

Tab 列表頁 :

 

 

 

在 tab 列表頁 中,我們需要提取出所有的主題列表頁 的 URL。你可能已經發現了,sample handler 已經提取了非常多大的 URL

代碼:

  1. @config(age=10 * 24 * 60 * 60) 
  2.     def index_page(self, response): 
  3.         for each in response.doc('a[href^="https://www.v2ex.com/?tab="]').items(): 
  4.             self.crawl(each.attr.href, callback=self.tab_page, validate_cert=False 
  • 由于帖子列表頁和 tab列表頁長的并不一樣,在這里新建了一個 callback 為 self.tab_page
  • @config(age=10 24 60 * 60) 在這表示我們認為 10 天內頁面有效,不會再次進行更新抓取

Go列表頁 :

 代碼:

  1. @config(age=10 * 24 * 60 * 60) 
  2.  
  3. def tab_page(self, response): 
  4.  
  5. for each in response.doc('a[href^="https://www.v2ex.com/go/"]').items(): 
  6.  
  7. self.crawl(each.attr.href, callback=self.board_page, validate_cert=False 

帖子詳情頁(T):

 你可以看到結果里面出現了一些reply的東西,對于這些我們是可以不需要的,我們可以去掉。

同時我們還需要讓他自己實現自動翻頁功能。

代碼: 

  1. @config(age=10 * 24 * 60 * 60) 
  2.     def board_page(self, response): 
  3.         for each in response.doc('a[href^="https://www.v2ex.com/t/"]').items(): 
  4.             url = each.attr.href 
  5.             if url.find('#reply')>0: 
  6.                 url = url[0:url.find('#')] 
  7.             self.crawl(url, callback=self.detail_page, validate_cert=False
  8.         for each in response.doc('a.page_normal').items(): 
  9.             self.crawl(each.attr.href, callback=self.board_page, validate_cert=False) #實現自動翻頁功能  

去掉后的運行截圖:

實現自動翻頁后的截圖:

此時我們已經可以匹配了所有的帖子的 url 了。

點擊每個帖子后面的按鈕就可以查看帖子具體詳情了。

 代碼:

  1. @config(priority=2) 
  2.     def detail_page(self, response): 
  3.         title = response.doc('h1').text() 
  4.         content = response.doc('div.topic_content').html().replace('"''\\"'
  5.         self.add_question(title, content)  #插入數據庫 
  6.         return { 
  7.             "url": response.url, 
  8.             "title": title, 
  9.             "content": content, 
  10.         } 

 插入數據庫的話,需要我們在之前定義一個add_question函數。

  1. #連接數據庫 
  2. def __init__(self): 
  3.         self.db = MySQLdb.connect('localhost''root''root''wenda', charset='utf8'
  4.  
  5.     def add_question(self, title, content): 
  6.         try: 
  7.             cursor = self.db.cursor() 
  8.             sql = 'insert into question(title, content, user_id, created_date, comment_count) values ("%s","%s",%d, %s, 0)' % (title, content, random.randint(1, 10) , 'now()');   #插入數據庫的SQL語句 
  9.             print sql 
  10.             cursor.execute(sql) 
  11.             print cursor.lastrowid 
  12.             self.db.commit() 
  13.         except Exception, e: 
  14.             print e 
  15.             self.db.rollback()  

查看爬蟲運行結果:

先debug下,再調成running。pyspider框架在windows下的bug

設置跑的速度,建議不要跑的太快,否則很容易被發現是爬蟲的,人家就會把你的IP給封掉的

查看運行工作

查看爬取下來的內容

  

 

然后再本地數據庫GUI軟件上查詢下就可以看到數據已經保存到本地了。

自己需要用的話就可以導入出來了。

在開頭我就告訴大家爬蟲的代碼了,如果詳細的看看那個project,你就會找到我上傳的爬取數據了。(僅供學習使用,切勿商用!)

當然你還會看到其他的爬蟲代碼的了,如果你覺得不錯可以給個 Star,或者你也感興趣的話,你可以fork我的項目,和我一起學習,這個項目長期更新下去。

***:

代碼:

  1. # created by 10412 
  2. # !/usr/bin/env python 
  3. # -*- encoding: utf-8 -*- 
  4. # Created on 2016-10-20 20:43:00 
  5. # Project: V2EX 
  6.  
  7. from pyspider.libs.base_handler import * 
  8.  
  9. import re 
  10. import random 
  11. import MySQLdb 
  12.  
  13. class Handler(BaseHandler): 
  14.     crawl_config = { 
  15.     } 
  16.  
  17.     def __init__(self): 
  18.         self.db = MySQLdb.connect('localhost''root''root''wenda', charset='utf8'
  19.  
  20.     def add_question(self, title, content): 
  21.         try: 
  22.             cursor = self.db.cursor() 
  23.             sql = 'insert into question(title, content, user_id, created_date, comment_count) values ("%s","%s",%d, %s, 0)' % (title, content, random.randint(1, 10) , 'now()'); 
  24.             print sql 
  25.             cursor.execute(sql) 
  26.             print cursor.lastrowid 
  27.             self.db.commit() 
  28.         except Exception, e: 
  29.             print e 
  30.             self.db.rollback() 
  31.  
  32.  
  33.     @every(minutes=24 * 60) 
  34.     def on_start(self): 
  35.         self.crawl('https://www.v2ex.com/', callback=self.index_page, validate_cert=False
  36.  
  37.     @config(age=10 * 24 * 60 * 60) 
  38.     def index_page(self, response): 
  39.         for each in response.doc('a[href^="https://www.v2ex.com/?tab="]').items(): 
  40.             self.crawl(each.attr.href, callback=self.tab_page, validate_cert=False
  41.  
  42.  
  43.     @config(age=10 * 24 * 60 * 60) 
  44.     def tab_page(self, response): 
  45.         for each in response.doc('a[href^="https://www.v2ex.com/go/"]').items(): 
  46.             self.crawl(each.attr.href, callback=self.board_page, validate_cert=False
  47.  
  48.  
  49.     @config(age=10 * 24 * 60 * 60) 
  50.     def board_page(self, response): 
  51.         for each in response.doc('a[href^="https://www.v2ex.com/t/"]').items(): 
  52.             url = each.attr.href 
  53.             if url.find('#reply')>0: 
  54.                 url = url[0:url.find('#')] 
  55.             self.crawl(url, callback=self.detail_page, validate_cert=False
  56.         for each in response.doc('a.page_normal').items(): 
  57.             self.crawl(each.attr.href, callback=self.board_page, validate_cert=False
  58.  
  59.  
  60.     @config(priority=2) 
  61.     def detail_page(self, response): 
  62.         title = response.doc('h1').text() 
  63.         content = response.doc('div.topic_content').html().replace('"''\\"'
  64.         self.add_question(title, content)  #插入數據庫 
  65.         return { 
  66.             "url": response.url, 
  67.             "title": title, 
  68.             "content": content, 
  69.         }  
責任編輯:龐桂玉 來源: segmentfault
相關推薦

2016-12-07 11:18:58

Python爬蟲網站

2021-03-18 09:18:12

python爬蟲

2018-05-11 10:16:41

微信小程序反編譯

2017-12-14 21:45:39

2017-05-12 18:00:44

pyspiderAJAXHTTP

2016-12-08 16:47:06

2017-05-24 15:07:19

Python爬蟲爬取

2021-06-02 22:18:11

Python關鍵詞微博

2021-01-24 16:40:00

Python爬取網站編程語言

2015-08-18 09:20:23

試用期開除員工

2017-11-20 09:46:08

python爬蟲Scrapy

2020-08-06 08:43:49

Python爬蟲數據

2017-05-10 12:05:17

pyspiderHTMLCSS

2024-08-30 15:03:43

2021-09-03 09:26:15

Python爬蟲百度百科

2018-08-08 11:40:24

ScrapyRequest網絡爬蟲

2020-10-16 07:03:17

Scrapy爬蟲框架

2018-01-11 10:20:04

Python爬蟲豆瓣音樂

2023-08-29 09:31:01

Scrapy網頁爬蟲

2023-08-30 08:43:42

asyncioaiohttp
點贊
收藏

51CTO技術棧公眾號

超碰人人cao| avove在线观看| 久久久久久久久久成人| 色乱码一区二区三区网站| 777色狠狠一区二区三区| 草草草视频在线观看| 欧美日韩国产综合视频| 久色婷婷小香蕉久久| 国内精品国产三级国产在线专| av小说在线观看| 日本一区二区三区视频在线看 | 91精品国模一区二区三区| 农民人伦一区二区三区| 午夜不卡视频| 91丨porny丨蝌蚪视频| 成人精品视频99在线观看免费| 久久伊人成人网| 日韩精品看片| 日韩高清a**址| 91精品国产三级| 日本综合视频| 精品女厕一区二区三区| 777久久精品一区二区三区无码| 欧美女子与性| 成人av在线网站| 亚洲在线视频福利| 亚洲一区二区激情| 玖玖国产精品视频| 97av在线视频| 久久精品国产亚洲av麻豆色欲 | 亚洲最大成人av| 国产亚洲激情| 高清亚洲成在人网站天堂| 欧美性生交大片| 精品日本12videosex| 亚洲国产欧美精品| 熟妇高潮一区二区| 天堂久久av| 91麻豆精品国产91久久久久久久久 | 亚洲美洲欧洲综合国产一区| 欧美区在线播放| 顶臀精品视频www| 日韩精品不卡一区二区| 亚洲人成网7777777国产| 亚洲视频在线播放免费| 99香蕉久久| 精品处破学生在线二十三| 国产精品久久久久久久99| 亚洲一区有码| 337p亚洲精品色噜噜狠狠| 日本中文字幕二区| 欧洲亚洲精品久久久久| 欧美另类久久久品| www.国产福利| 国产成人免费av一区二区午夜| 欧美日韩视频第一区| 天天操天天摸天天爽| 日本在线中文字幕一区二区三区| 欧美性猛片xxxx免费看久爱| 黄色成人免费看| 97成人超碰| 7777精品伊人久久久大香线蕉的 | 91成人理论电影| 亚洲怡红院av| 久久99久久99小草精品免视看| 国产精品久久久久免费a∨大胸| 国产精品免费无遮挡无码永久视频| 亚洲女人av| 国产精品女人网站| 一区二区三区黄| 国产精品一区在线| 国产一区免费在线| 久久国产精品高清一区二区三区| 国产日韩欧美电影| 国产手机视频在线观看| 国产盗摄精品一区二区酒店| 精品成人av一区| 久久久国产欧美| 日本一区影院| 亚洲美女av在线| 黄色一级片一级片| 午夜亚洲福利| 欧美中在线观看| 曰批又黄又爽免费视频| 国产sm精品调教视频网站| 国产精品久久久久久久久婷婷| 欧洲综合视频| 亚洲日本一区二区| 日韩在线综合网| julia一区二区三区中文字幕| 欧美精品久久99| 日本一区二区在线观看视频| 久久爱www成人| 久久精品国产亚洲7777| 国产情侣在线视频| 精品一区二区三区的国产在线播放| av成人在线电影| 高清性色生活片在线观看| 亚洲免费毛片网站| 国产免费视频传媒| 一区二区三区视频免费视频观看网站| 亚洲人成伊人成综合网久久久| 亚洲熟女毛茸茸| 粉嫩av一区二区夜夜嗨| 成人午夜大片| 国产一区二区黄| 久久av高潮av无码av喷吹| 日本成人中文字幕| 国产一区二区黄色| 黄网站免费在线播放| 狠狠色香婷婷久久亚洲精品| 午夜影院免费版| sdde在线播放一区二区| 高清欧美性猛交xxxx| 97超碰国产在线| 久久久综合视频| 国产二区视频在线| 国产精品亚洲综合在线观看| 亚洲人成网7777777国产| 久久精品国产av一区二区三区| 久久9热精品视频| 欧美日韩一区二区视频在线观看 | 成人午夜免费福利| 日韩一区日韩二区| 天天影视综合色| 亚洲春色h网| 国内精品国产三级国产在线专| 99视频国产精品免费观看a | 亚洲成人a**址| 手机av在线| 亚洲а∨天堂久久精品喷水| 中文字幕亚洲欧美日韩| 免费看欧美美女黄的网站| 久久久久久亚洲精品不卡4k岛国| 色婷婷av在线| av电影免费在线观看| 亚洲欧美综合网| 国产一级特黄a大片免费| 亚欧日韩另类中文欧美| 午夜精品在线观看| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 亚洲精品亚洲人成人网在线播放| 夜夜夜夜夜夜操| 欧美一区电影| 国产精品视频久久久| jizz在线免费观看| 欧美色图12p| 国产一二三av| 经典三级在线一区| 亚洲国产精品影视| 欧美成人精品午夜一区二区| 欧美理论片在线观看| www日本高清视频| 亚洲最色的网站| 欧洲熟妇的性久久久久久| 在线观看一区视频| 精品综合久久| 亚洲高清黄色| 中文字幕免费精品一区| 亚洲综合免费视频| 亚洲色图视频网站| 好吊操视频这里只有精品| 激情欧美丁香| 蜜桃传媒视频麻豆第一区免费观看 | 精品一区二区三| 国产精品视频中文字幕91| 日本在线看片免费人成视1000| 欧美日韩三级在线| 人妻久久一区二区| 99久久精品国产导航| 久久精品99国产| 日韩欧美视频专区| 亚洲一区二区三区在线视频 | 色综合天天性综合| 日韩视频在线观看免费视频| 免费在线观看一区二区三区| 中文字幕人成一区| 中文字幕一区日韩精品| 日本aⅴ大伊香蕉精品视频| a√在线中文网新版址在线| 欧美一级一级性生活免费录像| 国产小视频在线观看免费| 91麻豆精东视频| 中文字幕第17页| 国内综合精品午夜久久资源| 欧美精品亚洲精品| 9999在线精品视频| 国产91ⅴ在线精品免费观看| 在线播放日本| 精品国产精品网麻豆系列| 337p粉嫩色噜噜噜大肥臀| 成人免费在线视频| 成人手机在线免费视频| 久久电影国产免费久久电影| 久久人人爽人人爽人人av| 国产一卡不卡| 成人资源视频网站免费| 成人国产综合| 91国产中文字幕| 黄色在线观看网站| 亚洲美女免费精品视频在线观看| 国产精品熟女久久久久久| 欧美日韩亚洲激情| 国产日韩欧美在线观看视频| xfplay精品久久| 国产男女无遮挡猛进猛出| 肉色丝袜一区二区| 僵尸世界大战2 在线播放| 久久在线视频| 欧美日韩喷水| 国产精品久久久久av蜜臀| 成人黄色在线免费| 日韩天堂在线| 97香蕉久久超级碰碰高清版| www在线免费观看视频| 亚洲小视频在线观看| 欧美一级在线免费观看| 欧美顶级少妇做爰| 亚洲成人av网址| 欧美色播在线播放| 久视频在线观看| 一区二区三区精品在线| 成人精品一二三区| 日本一区二区三区高清不卡| 中文字幕日韩三级片| 国产成人a级片| 亚洲图片 自拍偷拍| 美女精品自拍一二三四| 国产第一页视频| 日韩午夜在线电影| 日韩亚洲欧美视频| 午夜久久tv| www.国产亚洲| 综合天堂av久久久久久久| 在线码字幕一区| 日韩精品看片| 伊人久久大香线蕉精品 | 天堂av免费看| 999久久久91| 正在播放一区二区三区| 91视频综合| 亚洲一区二区三区在线观看视频| 欧美亚洲精品在线| 欧美日韩另类综合| av资源久久| 天堂精品视频| 俺要去色综合狠狠| 这里只有精品66| 亚洲国产一区二区三区在线播放| www.黄色网址.com| 欧美久久视频| av高清在线免费观看| 亚洲深夜福利| 中文字幕无码不卡免费视频| 久久一区中文字幕| 91网址在线播放| 久久国产精品99久久久久久老狼| www.国产视频.com| 国产精品一二三四| 中国xxxx性xxxx产国| eeuss鲁片一区二区三区在线观看| 少妇被狂c下部羞羞漫画| 99精品国产99久久久久久白柏| 538国产视频| 国产欧美精品一区二区三区四区 | 自拍偷拍激情视频| 成人精品高清在线| 黄瓜视频污在线观看| 国产日产欧美一区| 永久免费看mv网站入口| 亚洲综合在线五月| 国产精品男女视频| 欧美午夜理伦三级在线观看| 国产又大又长又粗| 精品成人私密视频| 国产在线一二三区| 精品国产拍在线观看| 成人在线免费观看黄色| 清纯唯美日韩制服另类| 欧美日韩va| 国产乱码精品一区二区三区不卡| 亚洲福利网站| 91香蕉视频网址| 好吊一区二区三区| 亚洲欧美激情网| 国产成人精品1024| 在线小视频你懂的| 亚洲精品一二三区| 国产女主播喷水视频在线观看| 欧美精品18+| 无码h黄肉3d动漫在线观看| 色阁综合伊人av| 超碰99在线| 91日本在线视频| 日韩美女精品| 300部国产真实乱| 久久久天天操| 2018国产精品| 中文字幕一区二区三区四区| 日本三级视频在线| 欧美三级一区二区| 亚洲色图21p| 欧美成人精品在线视频| 日韩成人动漫| 韩日午夜在线资源一区二区| 天天av综合| 亚洲欧美另类动漫| 99精品一区二区三区| 日韩一区二区不卡视频| 在线中文字幕一区二区| 日本加勒比一区| 精品国产一区二区三区久久久狼 | 色婷婷国产精品久久包臀| 国产av精国产传媒| 最近2019中文字幕大全第二页 | 91ph在线| 欧美专区中文字幕| 国产精品久久久久av蜜臀| 免费看污污视频| 免费观看在线综合色| 不卡一区二区在线观看| 亚洲午夜激情网站| 国产黄色片免费| 最近中文字幕mv在线一区二区三区四区| 九九精品调教| 成人a在线视频| 久久久影院免费| www.欧美日本| 久久日韩精品一区二区五区| 日韩欧美性视频| 精品国产免费一区二区三区四区 | 国产视频网址在线| 欧美综合在线第二页| 卡通动漫国产精品| 国产不卡一区二区视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 在线观看视频二区| 在线播放日韩专区| 日韩国产网站| 日韩一区二区电影在线观看| 久久久国产精品一区二区中文| 蜜桃精品成人影片| 欧美日韩在线免费| 欧美日韩在线中文字幕| 日韩美女免费观看| 欧美日韩中文一区二区| 欧美性猛交久久久乱大交小说 | 亚洲国产精品系列| 国产精品一区二区日韩| 国模一区二区三区私拍视频| 亚洲国产精品第一区二区三区| 又黄又色的网站| 精品国产乱码久久久久久虫虫漫画 | 樱花草涩涩www在线播放| 久久亚洲综合网| 久久精品日产第一区二区| 精品无码人妻一区二区免费蜜桃| 日本韩国精品一区二区在线观看| 国产在线观看免费| 国产精品亚发布| 一区二区三区网站| 欧洲成人午夜精品无码区久久| 亚洲国产美国国产综合一区二区| 老牛影视av牛牛影视av| 欧美亚洲国产日本| 日韩电影免费网址| 成人免费黄色av| 亚洲成人tv网| 黄色的视频在线免费观看| 国产裸体写真av一区二区| 在线免费观看日本欧美爱情大片| 无码人妻精品一区二区三| 欧美日韩国产一中文字不卡| 福利片在线观看| 亚洲一区二区三区777| 亚洲精品乱码| 美女av免费看| 精品国产91亚洲一区二区三区婷婷| 在线女人免费视频| av动漫免费观看| www.日韩在线| 中文字幕第31页| 久久久久久网站| 精品国产精品国产偷麻豆| 亚洲AV无码久久精品国产一区| 欧美日韩国产一区中文午夜| 秋霞影院午夜丰满少妇在线视频| av免费精品一区二区三区| 天堂资源在线中文精品| 精品无码一区二区三区蜜臀| 亚洲精品xxx| 国产精品va视频| 日韩 欧美 高清| 亚洲精选一二三| av播放在线观看| 久久av免费一区| 国产精品一区不卡| 久久影视中文字幕| 久久久久久久久久婷婷| 色呦哟—国产精品|