如何用Python爬虫获取那些价值博文


本篇文章的内容是如何用Python爬虫获取那些价值博文,现在分享给大家,有需要的朋友可以参考一下这篇文章地的内容


作者 CDA数据分析师


在CSDN上有很多精彩的技术博客文章,我们可以把它爬取下来,保存在本地磁盘,可以很方便以后阅读和学习,现在我们就用python编写一段爬虫代码,来实现这个目的。


我们想要做的事情:自动读取博客文章,记录标题,把心仪的文章保存到个人电脑硬盘里供以后学习参考。


过程大体分为以下几步:


1. 找到爬取的目标网址;
2. 分析网页,找到自已想要保存的信息,这里我们主要保存是博客的文章内容;
3. 清洗整理爬取下来的信息,保存在本地磁盘。


打开csdn的网页,作为一个示例,我们随机打开一个网页:
http://blog.csdn.net/u013088062/article/list/1。


可以看到,博主对《C++卷积神经网络》和其它有关机计算机方面的文章都写得不错。



爬虫代码按思路分为三个类(class),下面3个带“#”的分别给出了每一个类的开头(具体代码附后,供大家实际运行实现):



采用“类(class)”的方式属于Python的面向对象编程,在某些时候比我们通常使用的面向过程的编程方便,在大型工程中经常使用面向对象编程。对于初学者来说,面向对象编程不易掌握,但是经过学习习惯之后,会逐步慢慢从面向过程到面向对象编程过渡。


特别注意的是,RePage类主要用正则表达式处理从网页中获取的信息,正则表达式设置字符串样式如下:



用正则表达式去匹配所要爬取的内容,用Python和其它软件工具都可以实现。正则表达式有许多规则,各个软件使用起来大同小异。用好正则表达式是爬虫和文本挖掘的一个重要内容。


SaveText类则是把信息保存在本地,效果如下:



用python编写爬虫代码,简洁高效。这篇文章仅从爬虫最基本的用法做了讲解,有兴趣的朋友可以下载代码看看,希望大家从中有收获。

附相关Python代码:


1#-*-coding:UTF-8-*-
2import re
3import urllib2
4import sys
5#目的:读取博客文章,记录标题,用Htnl格式保存存文章内容
6#版本:python2.7.13
7#功能:读取网页内容
8class GetHtmlPage():
9 #注意大小写
10 def __init__(self,strPage):
11 self.strPapge = strPage
12 #获取网页
13 def GetPage(self):
14 req = urllib2.Request(self.strPapge) # 建立页面请求
15 rep = req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0")
16 try:
17 cn = urllib2.urlopen(req) #网页请求
18 page = cn.read() #读网页
19 uPage = page.decode("utf-8") #网页编码
20 cn.close()
21 return uPage
22 except urllib2.URLError, e: #捕获异常
23 print 'URLError:', e.code
24 return
25 except urllib2.HTTPError, e: #捕获异常
26 print 'HTTP Error:' + e.reason
27 return
28 return rePage
29#正则表达式,获取想要的内容
30class RePage():
31#正则表达式提取内容,返回链表
32 def GetReText(self,page,recode):
33 rePage = re.findall(recode,page,re.S)
34 return rePage
35#保存文本
36class SaveText():
37 def Save(self,text,tilte):
38 try:
39 t="blog\\"+tilte+".html"
40 f = file(t,"a")
41 f.write(text)
42 f.close()
43 except IOError,e:
44 print e.message
45if __name__ == "__main__":
46 s = SaveText()
47 #文件编码
48 #字符正确解码
49 reload(sys)
50 sys.setdefaultencoding( "utf-8" ) #获得系统的默认编码
51 #获取网页
52 page = GetHtmlPage("http://blog.csdn.net/u013088062/article/list/1")
53 htmlPage = page.GetPage()
54 #提取内容
55 reServer = RePage()
56 reBlog = reServer.GetReText(htmlPage,r'.*?(\s.+?)') #获取网址链接和标题
57 #再向下获取正文
58 for ref in reBlog:
59 pageHeard = "http://blog.csdn.net/" #加链接头
60 strPage = pageHeard+ref[0]
61 tilte=ref[1].replace('[置顶]', "") #用替换的功能去除杂的英文
62 tilte=tilte.replace("
","").lstrip().rstrip()
63 #获取正文
64 htmlPage = GetHtmlPage(strPage)
65 htmlPageData = htmlPage.GetPage()
66 reBlogText = reServer.GetReText(htmlPageData,'
(.+?)
')
67 #保存文件
68 for s1 in reBlogText:
69 s1='
'+s1
70 s.Save(s1,tilte)

相关推荐:

php实现简单爬虫的开发案例
Python爬虫浏览器标识库
记录一次简单的Python爬虫实例

  • python缃戠粶鐖櫕鍏蜂綋鏄鎬庢牱鐨?
    绛旓細Python缃戠粶鐖櫕鏄浣跨敤Python缂栧啓鐨勪竴绉嶇綉缁滄暟鎹噰闆嗗伐鍏枫侾ython鎻愪緵浜嗕赴瀵岀殑搴撳拰妯″潡锛屼娇寰楃紪鍐欑綉缁滅埇铏彉寰楃畝鍗曞拰楂樻晥銆傞氳繃缂栧啓Python绋嬪簭锛屽彲浠ユā鎷熶汉绫诲湪娴忚鍣ㄤ腑璁块棶缃戦〉鐨勮涓猴紝鑷姩鎶撳彇缃戦〉涓婄殑鏁版嵁銆侾ython缃戠粶鐖櫕鍙互閫氳繃鍙戦丠TTP璇锋眰鑾峰彇缃戦〉鍐呭锛岀劧鍚庝娇鐢ㄨВ鏋愬簱瀵圭綉椤佃繘琛岃В鏋愶紝鎻愬彇鎵闇鐨勬暟鎹侾ython...
  • 鐖櫕python鍏ラ棬鏁欑▼
    绛旓細鍥剧墖绛夊唴瀹圭殑Response銆3. **瑙f瀽鍐呭**锛浣跨敤濡傛鍒欒〃杈惧紡銆亁path銆丅eautifulSoup绛夊伐鍏疯В鏋愬唴瀹广4. **淇濆瓨鏁版嵁**锛氬皢鏁版嵁淇濆瓨鑷虫暟鎹簱鎴栨枃浠朵腑銆傚洓銆**瀛︿範璧勬簮*** 鍙悳绱⑩滅綉缁滅埇铏熀纭鍏ラ棬鈥鑾峰彇鏇村鏁欑▼鍜屽簱鐨勪娇鐢ㄨ鏄庛備互涓婃槸Python鐖櫕鍏ラ棬鐨勫熀纭姒傝堪锛屽闇娣卞叆瀛︿範锛屽缓璁粨鍚堝疄璺甸」鐩愭鎺屾彙銆
  • Python涓鎬庝箞鐢ㄧ埇铏鐖
    绛旓細Python鐖櫕鍙互鐖彇鐨勪笢瑗挎湁寰堝锛Python鐖櫕鎬庝箞瀛︼紵绠鍗曠殑鍒嗘瀽涓嬶細濡傛灉浣犱粩缁嗚瀵燂紝灏变笉闅惧彂鐜帮紝鎳傜埇铏佸涔犵埇铏殑浜鸿秺鏉ヨ秺澶氾紝涓鏂归潰锛屼簰鑱旂綉鍙互鑾峰彇鐨勬暟鎹秺鏉ヨ秺澶氾紝鍙︿竴鏂归潰锛屽儚 Python杩欐牱鐨勭紪绋嬭瑷鎻愪緵瓒婃潵瓒婂鐨勪紭绉宸ュ叿锛岃鐖櫕鍙樺緱绠鍗曘佸鏄撲笂鎵嬨鍒╃敤鐖櫕鎴戜滑鍙互鑾峰彇澶ч噺鐨勪环鍊兼暟鎹紝浠庤鑾峰緱...
  • python鐖櫕鏈変粈涔堢敤
    绛旓細2銆佸彲浠浣跨敤python鐖櫕鍘鎶撳彇淇℃伅骞朵笖涓嬭浇鍒版湰鍦般傛嫇灞曪細鐖櫕鍒嗙被 浠庣埇鍙栧璞℃潵鐪嬶紝鐖櫕鍙互鍒嗕负閫氱敤鐖櫕鍜岃仛鐒︾埇铏袱绫汇傞氱敤缃戠粶鐖櫕鍙堢О鍏ㄧ綉鐖櫕锛圫calable Web Crawler锛夛紝鐖瀵硅薄浠庝竴浜涚瀛 URL 鎵╁厖鍒版暣涓 Web锛屼富瑕佷负鎼滅储寮曟搸鍜屽ぇ鍨 Web 鏈嶅姟鎻愪緵鍟嗛噰闆嗘暟鎹傝仛鐒︾綉缁滅埇铏紙Focused Crawler锛夛紝鏄寚...
  • 濡備綍鐢≒ython鐖櫕鎶撳彇缃戦〉鍐呭?
    绛旓細鐖櫕娴佺▼ 鍏跺疄鎶婄綉缁滅埇铏娊璞″紑鏉ョ湅锛屽畠鏃犲涔庡寘鍚涓嬪嚑涓楠 妯℃嫙璇锋眰缃戦〉銆傛ā鎷熸祻瑙堝櫒锛屾墦寮鐩爣缃戠珯銆鑾峰彇鏁版嵁銆傛墦寮缃戠珯涔嬪悗锛屽氨鍙互鑷姩鍖栫殑鑾峰彇鎴戜滑鎵闇瑕佺殑缃戠珯鏁版嵁銆備繚瀛樻暟鎹傛嬁鍒版暟鎹箣鍚庯紝闇瑕佹寔涔呭寲鍒版湰鍦版枃浠舵垨鑰呮暟鎹簱绛夊瓨鍌ㄨ澶囦腑銆傞偅涔堟垜浠濡備綍浣跨敤 Python 鏉ョ紪鍐欒嚜宸辩殑鐖櫕绋嬪簭鍛紝鍦ㄨ繖閲...
  • 濡備綍鐢╬ython瑙e喅缃戠粶鐖櫕闂?
    绛旓細Python鎻愪緵浜嗚澶氬己澶х殑搴撳拰妗嗘灦锛屽彲浠ュ府鍔╂偍缂栧啓缃戠粶鐖櫕绋嬪簭銆傚叾涓紝甯哥敤鐨勫簱鍖呮嫭BeautifulSoup銆丼crapy鍜孯equests绛夈浣跨敤Python缂栧啓缃戠粶鐖櫕绋嬪簭鐨勪竴鑸楠ゅ涓嬶細1. 瀵煎叆鎵闇鐨勫簱锛氫娇鐢╥mport璇彞瀵煎叆鎵闇鐨勫簱锛屽BeautifulSoup銆丼crapy鍜孯equests绛夈2. 鍙戦丠TTP璇锋眰锛氫娇鐢≧equests搴撳彂閫丠TTP璇锋眰锛鑾峰彇缃戦〉鐨...
  • python3濡備綍鍒╃敤requests妯″潡瀹炵幇鐖彇椤甸潰鍐呭鐨勫疄渚嬭瑙
    绛旓細2锛変紶閫扷RL鍙傛暟鏈夋椂鎴戜滑鎯充负 URL 鐨勬煡璇㈠瓧绗︿覆浼犻掓煇绉嶆暟鎹傚鏋滀綘鏄墜宸ユ瀯寤 URL锛岄偅涔堟暟鎹細浠ラ敭/鍊煎鐨勫舰寮忕疆浜 URL 涓紝璺鍦涓涓棶鍙风殑鍚庨潰銆備緥濡傦紝 cnblogs.com/get?key=val銆 Requests 鍏佽浣浣跨敤 params 鍏抽敭瀛楀弬鏁帮紝浠ヤ竴涓瓧绗︿覆瀛楀吀鏉ユ彁渚涜繖浜涘弬鏁般備妇渚嬫潵璇达紝褰撴垜浠琯oogle鎼滅储鈥python鐖櫕...
  • 鐢≒ython鐖櫕鍙互鐖繃鍘荤殑缃戠珯鍚?
    绛旓細鎺ヤ笅鏉ユ垜浠氨瑕佹濊濡備綍鐢ㄧ埇铏姄鍙缃戦〉鏁版嵁锛1.棣栧厛瑕佹槑纭綉椤电殑涓夊ぇ鐗瑰緛锛1锛夋瘡涓涓綉椤甸兘鏈夊敮涓缁熶竴璧勬簮瀹氫綅绗︼紙URL锛夋潵杩涜瀹氫綅锛2锛夌綉椤典娇鐢ㄨ秴鏂囨湰鏍囪璇█锛圚TML锛夋潵鎻忚堪椤甸潰淇℃伅锛3锛夌綉椤典娇鐢ㄨ秴鏂囨湰浼犺緭鍗忚锛圚TTP/HTTPS锛夊崗璁潵浼犺緭HTML鏁版嵁銆2.寤虹珛鐖櫕鐨勮璁℃濊矾锛1锛夐鍏堢‘瀹氶渶瑕佺埇鍙栫殑缃戦〉URL...
  • 濡備綍鐢╬ython瀹炵幇缃戠粶鐖櫕
    绛旓細鎸虹畝鍗曠殑锛屾垜灏濊瘯杩囷紝灏变笁姝ワ紝鐢鐖櫕妗嗘灦scrapy 瀹氫箟item绫 寮鍙憇pider绫伙紙鏄牳蹇冿級寮鍙憄ipeline 鐪嬩竴鐪 鐤媯python璁蹭箟 杩欐湰涔︼紝瀵瑰涔爌ython鎸烘湁甯姪鐨
  • 濡備綍鍒╃敤Python鐖櫕浠庣綉椤典笂鎵归噺鑾峰彇鎯宠鐨勪俊鎭
    绛旓細python鏄竴娆惧簲鐢ㄩ潪甯稿箍娉涚殑鑴氭湰绋嬪簭璇█锛岃胺姝屽叕鍙哥殑缃戦〉灏辨槸鐢╬ython缂栧啓銆俻ython鍦ㄧ敓鐗╀俊鎭佺粺璁°佺綉椤靛埗浣溿佽绠楃瓑澶氫釜棰嗗煙閮戒綋鐜板嚭浜嗗己澶х殑鍔熻兘銆俻ython鍜屽叾浠栬剼鏈瑷濡俲ava銆丷銆丳erl 涓鏍凤紝閮藉彲浠ョ洿鎺ュ湪鍛戒护琛岄噷杩愯鑴氭湰绋嬪簭銆傚伐鍏/鍘熸枡 python锛汣MD鍛戒护琛岋紱windows鎿嶄綔绯荤粺 鏂规硶/姝ラ 1銆侀鍏堜笅杞藉畨瑁...
  • 扩展阅读:python爬虫网站 ... python爬取网页 ... 价格适中的python爬虫 ... 新手怎么入门python爬虫 ... 网络爬虫一个月多少钱 ... 为什么爬虫会坐牢 ... 爬虫一单多少钱 ... python简单的爬虫教程 ... 爬虫赚钱一个月真实经历 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网