python爬文章_python爬虫 ----文章爬虫(合理处理字符串中的\n\t\r........)

import urllib.request

import re

import time

num=input("输入日期(20150101000):")

def openpage(url):

html=urllib.request.urlopen(url)

page=html.read().decode(‘gb2312‘)

return page

def getpassage(page):

passage = re.findall(r‘

([\s\S]*)‘,str(page))

passage1=re.sub("?\w+[^>]*>", "", str(passage))

passage2=passage1.replace(‘\\r‘, ‘\r‘).replace(‘\\n‘, ‘ \n‘).replace(‘\\t‘,‘\t‘).replace(‘]‘,‘‘).replace(‘[‘,‘‘).replace(‘ ‘,‘ ‘)

print(passage2)

with open(load,‘a‘,encoding=‘utf-8‘) as f:

f.write("-----------------------------"+"日期"+str(date)+"---------------------------------\n"+passage2+"----------------------------------------------------\n")

for i in range(1,32):

date=int(num)+int(i)

print(date)

load="C:/Users/home/Desktop/新建文本文档.txt"

url=("http://www.hbuas.edu.cn/news/xyxw/news_"+str(date)+".htm")

try:

page=openpage(url)

getpassage(page)

print("第"+str(i)+"号有文章,----已下载")

except:

print("第"+str(i)+"号无文章。")

time.sleep(2)

写了一个爬学校新闻网的爬虫,

主要涉及 re正则 urllib.request 文件的写入

在爬取文章时通常会返回很多影响美感的代码

如下:

L3Byb3h5L2h0dHAvaW1hZ2VzMjAxNy5jbmJsb2dzLmNvbS9ibG9nLzExNDQyNzEvMjAxNzA4LzExNDQyNzEtMjAxNzA4MTIxNzU4MDYzMzUtMjA3MTEwMjMyNy5wbmc=.jpg

优化:

两次正则

passage = re.findall(r‘

([\s\S]*)‘,str(page)) #第一次匹配字段

passage1=re.sub("?\w+[^>]*>", "", str(passage))              # 第二次去掉html标签

替换

passage2=passage1.replace(‘\\r‘, ‘\r‘).replace(‘\\n‘, ‘ \n‘).replace(‘\\t‘,‘\t‘).replace(‘]‘,‘‘).replace(‘[‘,‘‘).replace(‘ ‘,‘ ‘)

效果如下:

L3Byb3h5L2h0dHAvaW1hZ2VzMjAxNy5jbmJsb2dzLmNvbS9ibG9nLzExNDQyNzEvMjAxNzA4LzExNDQyNzEtMjAxNzA4MTIxODAzMDY2NjMtMjIwOTczMzQ5LnBuZw==.jpg

over!

时间: 08-12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值