您的位置:首页 > 编程语言 > Python开发

Python爬虫抓取贴吧所有标题

2017-12-23 10:14 423 查看
这段代码用于获取指定贴吧下指定页数的所有标题。

原代码不知道是使用哪位仁兄的,已经不记得了,稍微修改了下,请求超时时长为7s,并且把抓取到的文本保存到txt文档中。

工作环境:python 2.7 

操作系统:mac os

完整代码如下:

#!/usr/bin/env python
#coding:utf-8

import urllib2
import re
import sys

reload(sys)
sys.setdefaultencoding('utf8')
global titles

#加载页面内容
def load_page(url):
'''
发送url请求
返回url请求的静态html页面
:param url:
:return:
'''
try:
user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
headers = {"User-Agent" : user_agent}
request = urllib2.Request(url,headers = headers)
response = urllib2.urlopen(request,timeout=7)
html = response.read()
#print html
#print "--------------------------"
getTitle(html)
except Exception,e:
print str(e)

#生成url地址,加载页面内容
def tieba_spider(url,startPage,endPage):
for i in range(startPage,endPage + 1):
page = (i - 1) * 50
my_url = url + str(page)
load_page(my_url)
print "--------第%d页----------" % i

#获得贴吧的标题
def getTitle(html):
global titles
info = re.findall(r'class="j_th_tit ">(.*?)</a>',html,re.S)
for titleList in info:
print titleList
print "---------------"
titles.write(" ".join(info))

if __name__ == '__main__':
url = "http://tieba.baidu.com/f?kw=%E8%BD%AC%E5%9F%BA%E5%9B%A0&ie=utf-8&pn="
startPage = 1
endPage = 731
global titles
titles = open('tiebaTitles.txt','w')
tieba_spider(url, startPage, endPage)
titles.close()
print "---------------------结束------------------"


程序截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: