刚学完python基础知识,但在兼职时被让去关注某些网页消息,抄抄补补尝试写了个爬虫。可是只能爬某一个网页,因为不同网址,属性不一样,我只好针对着来写。后面再看看有没有什么好的改进办法。
def getnews(src):
base_url = re.search(".+\.cn",src).group()
headers = {'User-Agent': 'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
#有的会拒绝访问
html = request.Request(src,headers=headers)
html = request.urlopen(html).read().decode('utf-8')#网页原始编码格式
soup = BeautifulSoup(html,features='lxml')
url_h = soup.find_all(attrs="ncother",\
text = re.compile(datetime.datetime.now().strftime('%Y-%m-20')))#获取今日日期,当然,可以改的
for i in range(0,len(url_h)):
url = url_h[i]
url = url.previous_sibling.previous_sibling#得到网址前半部
title = url.a["title"]
url = base_url+url.a["href"]#得到地址
with open('C:\\Users\\user\\Desktop\\0721.txt', 'a',encoding='utf-8') as f:##注意编码方式
f.write(url)
f.write('\n')
f.write(title)
f.write('\n\n')
getnews("http://cdst.gov.cn/Type.asp?TypeID=47&BigClassID=181")#address[0]
7-23
今天试了分别处理的方式爬多个网站。大概的样子出来了,虽然还有很多改进的,就先这样吧。后面再改。
功能:爬取政府网站通知列表当天消息,保存title和网址到txt中。
from urllib import error
from urllib import req