国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python編寫網(wǎng)頁爬蟲腳本并實現(xiàn)APScheduler調(diào)度

2020-02-23 05:36:31
字體:
供稿:網(wǎng)友

前段時間自學(xué)了python,作為新手就想著自己寫個東西能練習(xí)一下,了解到python編寫爬蟲腳本非常方便,且最近又學(xué)習(xí)了MongoDB相關(guān)的知識,萬事具備只欠東風(fēng)。

程序的需求是這樣的,爬蟲爬的頁面是京東的電子書網(wǎng)站頁面,每天會更新一些免費的電子書,爬蟲會把每天更新的免費的書名以第一時間通過郵件發(fā)給我,通知我去下載。

一、編寫思路:

  1.爬蟲腳本獲取當(dāng)日免費書籍信息

  2.把獲取到的書籍信息與數(shù)據(jù)庫中的已有信息作比較,如果書籍存在不做任何操作,書籍不存在,執(zhí)行插入數(shù)據(jù)庫的操作,把數(shù)據(jù)的信息存入MongoDB

  3.執(zhí)行數(shù)據(jù)庫插入操作時,把更新的數(shù)據(jù)以郵件的形式發(fā)送出來

  4.用APScheduler調(diào)度框架完成python腳本調(diào)度

二、腳本的主要知識點:

1.python簡單爬蟲

本次用到的模塊有urllib2用來抓取頁面,導(dǎo)入模塊如下:

import urllib2from sgmllib import SGMLParser

urlopen()方法獲取網(wǎng)頁HTML源碼,都存儲在content中,listhref()類主要的功能是解析HTML代碼,處理HTML類型的半結(jié)構(gòu)化文檔。

content = urllib2.urlopen('http://sale.jd.com/act/yufbrhZtjx6JTV.html').read()listhref = ListHref()listhref.feed(content)

listhref()類代碼可以在下面全部代碼中查詢到,這里只說幾個關(guān)鍵點:

listhref()類繼承了SGMLParser 類并重寫了其中的內(nèi)部方法。SGMLParser 將HTML分解成有用的片段,比如開始標(biāo)記和結(jié)束標(biāo)記。一旦成功地分解出某個數(shù)據(jù)為一個有用的片段,它會根據(jù)所發(fā)現(xiàn)的數(shù)據(jù),調(diào)用一個自身內(nèi)部的方法。為了使用這個分析器,您需要子類化 SGMLParser類,并且重寫父類的這些方法。

SGMLParser 將 HTML 分析成不同類數(shù)據(jù)及標(biāo)記,然后對每一類調(diào)用單獨的方法:
開始標(biāo)記 (Start_tag)
是一個開始一個塊的 HTML 標(biāo)記,像 <html>,<head>,<body> , <pre> 等,或是一個獨一的標(biāo)記,象 <br> 或 <img> 等。本例當(dāng)它找到一個開始標(biāo)記<a>,SGMLParser將查找名為 start_a或do_a的方法。如果找到了,SGMLParser會使用這個標(biāo)記的屬性列表來調(diào)用這個方法;否則,它用這個標(biāo)記的名字和屬性列表來調(diào)用unknown_starttag方法。
結(jié)束標(biāo)記 (End_tag)
是結(jié)束一個塊的HTML標(biāo)記,像 </html>,</head>,</body> 或 </pre> 等。本例中當(dāng)找到一個結(jié)束標(biāo)記時,SGMLParser 將查找名為end_a的方法。如果找到,SGMLParser調(diào)用這個方法,否則它使用標(biāo)記的名字來調(diào)用unknown_endtag。
文本數(shù)據(jù)(Text data)
獲取文本塊,當(dāng)不滿足其它各類別的任何標(biāo)記時,調(diào)用handle_data獲取文本。

以下的幾類在本文中沒有用到
字符引用 (Character reference)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 项城市| 集贤县| 清新县| 皋兰县| 都兰县| 普洱| 龙川县| 江山市| 荃湾区| 西城区| 红桥区| 武胜县| 安塞县| 秦安县| 堆龙德庆县| 五家渠市| 集贤县| 新乡县| 洛宁县| 安多县| 通化市| 咸丰县| 长白| 和林格尔县| 宜兰县| 丰宁| 广昌县| 夏河县| 天祝| 乳山市| 灯塔市| 根河市| 河西区| 肃南| 尤溪县| 新建县| 迁西县| 佛学| 长汀县| 偃师市| 五原县|