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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

python入門實(shí)踐之網(wǎng)頁數(shù)據(jù)抓取

2019-11-14 17:34:03
字體:
供稿:網(wǎng)友

這個不錯。正好入門學(xué)習(xí)使用。

1、其中用到 feedparser:
技巧:使用 Universal Feed Parser 駕馭 rss
http://www.ibm.com/developerworks/cn/xml/x-tipufp.html
請訪問 feedparser.org,詳細(xì)了解 Universal Feed Parser,其中還包括一些下載資料和文檔。

feedparser 實(shí)際下載地址:
http://code.google.com/p/feedparser/downloads/list

2、另外,需要將文件加上 utf-8 的 bom 頭,需要用到 python 寫入十六進(jìn)制字符:
http://linux.byexamples.com/archives/478/python-writing-binary-file/
python 寫入十六進(jìn)制字符
file.write("/x5F/x9D/x3E")
file.close()

3、因?yàn)橐{(diào)試,文件的打開模式改成 w 方便一些。

Python代碼  收藏代碼
    1. import urllib  
    2. import sys  
    3. import re  
    4. from feedparser import _getCharacterEncoding as enc  
    5.   
    6. class TagParser:  
    7.     def __init__(self, value):  
    8.         self.value = value  
    9.     def get(self, start, end):  
    10.         regx = re.compile(r'<' + start + r'.*?>.*</' + end + r'>')  
    11.         return re.findall(regx, self.value)  
    12.   
    13. if __name__ == "__main__":  
    14.     baseurl = "http://data.book.163.com/book/section/000BAfLU/000BAfLU"  
    15.     f = open("test_01.txt", "w")  
    16.     f.write("/xef/xbb/xbf")  
    17. #    for ndx in range(0, 56):  
    18.     for ndx in range(0, 1):  
    19.         url = baseurl + str(ndx) + ".html"  
    20.         PRint "get content from " + url  
    21.         src = urllib.urlopen(url)  
    22.         text = src.read()  
    23.   
    24.     f1= open("tmp_" + str(ndx) + ".txt", "w")  
    25.     f1.write(text)  
    26.     f1.close()  
    27.   
    28.         encoding = enc(src.headers, text)[0]  
    29.      
    30.         tp = TagParser(text)  
    31.      
    32.         title = tp.get('h1 class="f26s tC"', 'h1')  
    33.         article = tp.get('p class="ti2em"', 'p')  
    34.      
    35.         t = re.sub(r'</.+>', '/n', title[0])  
    36.         t = re.sub(r'<.+>', '/n', t)  
    37.         data = t  
    38.      
    39.         c = ""  
    40.         for p in article:  
    41.             pt = re.sub(r'</p>', '/n', p)  
    42.             c += pt  
    43.         c = re.sub(r'<.+>', '/n', c)  
    44.         data += c  
    45.         data = data.decode(encoding)  
    46.         f.write(data.encode('utf-8', 'ignore'))  
    47.      
    48.     f.close()  

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新乐市| 邵阳市| 余江县| 方城县| 富宁县| 邛崃市| 抚顺县| 团风县| 富宁县| 新蔡县| 江都市| 南城县| 息烽县| 沅陵县| 济阳县| 密云县| 前郭尔| 巴塘县| 杨浦区| 静宁县| 宜阳县| 顺义区| 凌海市| 鄢陵县| 明溪县| 壤塘县| 黄陵县| 镇宁| 马边| 朝阳区| 饶阳县| 昌江| 贵阳市| 延津县| 唐山市| 吴川市| 西充县| 若羌县| 塔城市| 阳高县| 仙游县|