博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1)②爬取光明网部分旅游新闻
阅读量:6471 次
发布时间:2019-06-23

本文共 2195 字,大约阅读时间需要 7 分钟。

1 __author__ = 'minmin' 2 #coding:utf-8 3 import re,urllib,sgmllib 4  5 #根据当前的url获取html 6 def getHtml(url): 7     page = urllib.urlopen(url) 8     html = page.read() 9     page.close()10     return html11 12 #根据html获取想要的文章内容13 def func(str):14      result= re.findall(r"

([^<>]*)

",getHtml(url),re.M) or re.findall(r"

([^<>]*)

",getHtml(url),re.M)15 # or re.findall( r"

(.*?)

",getHtml(url),re.M)16 artical =''17 for j in result:18 if len(j)<>0:19 j = j.replace(" ","")20 j = j.replace(""," ")#去掉,换成" "21 j = j.replace(""," ")#去掉换成" "22 artical = artical + j + '\n'23 return artical24 25 #html链接的标签是“a”,链接的属性是“href”,也就是要获得html中所有tag=a,attrs=href 值。26 class URLPaser(sgmllib.SGMLParser):27 def reset(blank):28 sgmllib.SGMLParser.reset(blank)29 blank.urls = []30 31 def start_a(blank,attrs):32 href = [v for k,v in attrs if k == 'href']33 if href:34 blank.urls.extend(href)35 36 IParser = URLPaser()37 socket = urllib.urlopen("http://travel.gmw.cn/node_39034.htm")#打开这个网页38 39 #fout = file('qq_art_urls.txt','w')#要把这个链接写到这个文件中40 IParser.feed(socket.read())#分析啦41 42 reg = 'http://travel.gmw.cn/2015-.*' #这个是用来匹配符合条件的链接,使用正则表达式匹配43 reg2= 'http://travel.gmw.cn/2014-.*'44 pattern = re.compile(reg)45 patter = re.compile(reg2)46 i= 047 url2=[]48 for url in IParser.urls:#链接都存在urls里49 url = "http://travel.gmw.cn/" + url50 if pattern.match(url):51 if url not in url2:52 url2.append(url)53 print url54 artical = func(url)55 print artical56 if len(artical)<>0:57 i = i + 158 f = open("gmw/travel/"+str(i) + '.txt','a+')59 f.write(artical)60 f.close()61 62 if patter.match(url):63 if url not in url2:64 url2.append(url)65 print url66 print artical67 if len(artical)<>0:68 i = i + 169 f = open("gmw/travel/"+str(i) + '.txt','a+')70 f.write(artical)71 f.close()

 

转载于:https://www.cnblogs.com/minmsy/p/4962710.html

你可能感兴趣的文章
Android快速开发常用知识点系列目录
查看>>
最容易理解的对卷积(convolution)的解释
查看>>
《机器学习实战》知识点笔记目录
查看>>
完美解决NC502手工sql的查询引擎排序及合计问题
查看>>
windows 7/mac编译cocos2d-x-3.2*的android工程报错
查看>>
MYSQL导入导出.sql文件(转)
查看>>
git review报错一例
查看>>
《信息安全系统设计基础》 课程教学
查看>>
Linux平台下使用rman进行oracle数据库迁移
查看>>
全栈工程师学习Linux技术的忠告
查看>>
iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变...
查看>>
SVN服务器使用(二)
查看>>
反射获取内部类以及调用内部类方法
查看>>
C语言 - pthread
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
java值传递
查看>>