关于Python网络爬虫实战笔记③

时间:2021-09-07 14:21:20

Python网络爬虫实战笔记③如何下载韩寒博客文章

Python网络爬虫实战笔记③如何下载韩寒博客文章

target:下载全部的文章

1. 博客列表页面规则

关于Python网络爬虫实战笔记③

也就是,

http://blog.sina.com.cn/s/articlelist_1191258123_0_*.html

  • 字符串的连接:

    关于Python网络爬虫实战笔记③

    但是字符串和整型变量不能连接在一起

    关于Python网络爬虫实战笔记③

    这个时候可以用str()函数

    关于Python网络爬虫实战笔记③

再回到题目上来, http://blog.sina.com.cn/s/articlelist_1191258123_0_*.html中的*得用page来替换

page=1
con=urllib.urlopen('http://blog.sina.com.cn/s/articlelist_1191258123_0_'+str(page)+'.html').read()

结合一下以前的代码,实现所有文章的下载

#coding:utf-8
import urllib
import time
url=['']*350
page=1
link=1
while page<=7:
con=urllib.urlopen('http://blog.sina.com.cn/s/articlelist_1191258123_0_'+str(page)+'.html').read()
i=0
title=con.find(r'<a title')
href=con.find(r'href=',title)
html=con.find(r'.html',href)

while title !=-1 and href !=-1 and html !=-1 and i < 350:
url[i]=con[href+6:html+5]
print link,' ',url[i]
title=con.find(r'<a title',html)
href=con.find(r'href=',title)
html=con.find(r'.html',href)
i=i+1
link=link+1
else:
print 'page',page,'find end'
page=page+1
else:
print 'all find end'

j=0
while j<350:
content =urllib.urlopen(url[j]).read()
open(r'hanhan/'+url[j][-26:],'w+').write(content)
print 'downloading',url[j]
j=j+1
time.sleep(15)
else:
print 'download article finished'

关于Python网络爬虫实战笔记③

这样就能把全部的文章都下载下来~