首先我们创建一个python文件tiebaSpider.py,我们需要完成的是输入一个百度贴吧的地址,例如:百度贴吧LOL的第一页贴吧:http://tieba.baidu.com/f?kw=l...这是lol贴吧首页的url地址。如果你打开第二页,你会发现他的url如下:第二页:http://tieba.baidu.com/fkw=lo...第三页:http://tieba.baidu.com/f?kw=l...你找到规律了吗?页面之间的区别就是url末尾的pn值,其他都是一样的。我们可以把握这个规律。1、简单写一个爬虫小程序,爬取百度笑吧的所有网页。我们之前写过一段代码来爬取一个网页。现在,我们可以把它封装成一个小函数loadPage供我们使用。defloadPage(url):''''''通过URL请求爬取html静态页面源码url:待爬取的URL地址req=urllib2.Request(url)response=urllib2.urlopen(req)html=response.read()returnhtml接下来我们写一个百度贴吧爬虫接口,我们需要给这个接口传递3个参数,一个是我们要爬取的url地址,还有起始页代码和结束页代码,表示范围要抓取的页面代码。deftiebaSpider(url,beginPage,endPage):''''''百度贴吧爬虫核心程序:url:待爬取的URL地址beginPage:爬虫贴吧起始页码endPage:爬虫贴吧终止页数user_agent="Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;"#IE9.0的User-Agentheaders={"User-Agent":user_agent}foriinrange(beginPage,endPage+1):pn=50*(i-1)html=loadPage(url+str(pn))最后,如果我们想把爬取的每个页面的信息存储在本地磁盘上,我们可以简单地写一个存储文件interface.defwriteFile(file_name,text):''''''将字符串内容写入文件:file_name:文件路径text:要写入的字符串print"fileisbeingstored"+file_namef=open(file_name,'w+')f.write(text)f.close()ok,接下来就是写一个main函数,然后提示用户输入要爬取的百度贴吧的url地址。(注:百度贴吧最后页码后面的数字"pn=",这些数字是页码ber参数是我们传入的,所以再次提供时不能包含数字)ifname=='main':tiebaurl=str(raw_input('请输入贴吧地址,去掉pn=:后面的数字))beginPage=int(raw_input('请输入起始页码'))endPage=int(raw_input('请输入结束页码'))tiebaSpider(tiebaurl,beginPage,endPage)综上所述,所有代码完成.好吧,让我们最后测试一下。2、爬虫代码测试运行后,输入lol吧的url地址http://tieba.baidu.com/f?kw=l...(注意=号后面不要加数字,因为我们会自动添加)Power@PowerMac~$pythontiebaSpider.py请输入贴吧地址,去掉pn=后面的数字:http://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=请输入起始页码5请输入结束页码10下载第5个网页保存文件5.html下载第6个网页保存文件6.html下载第7个网页保存文件7.html正在下载第8个网页并存储文件8.html正在下载第9个网页,存放文件9.html正在下载第10个网页,存放文件10.html3.所有网站都是这样,当前url下会有几个html页面,对应URL后面的网页序号,这样一个简单的爬虫程序就可以批量获取网站页面的源代码,然后我们就可以从中过滤出我们想要的数据信息。点击获取全套python爬虫视频教程,从爬虫基础到进阶项目实战教程,非常值得零基础的人学习爬虫,理论+项目实践,最终成为爬虫高手。
