Python爬虫抓取贴吧所有标题
这段代码用于获取指定贴吧下指定页数的所有标题。原代码不知道是使用哪位仁兄的,已经不记得了,稍微修改了下,请求超时时长为7s,并且把抓取到的文本保存到txt文档中。工作环境:python 2.7 操作系统:mac os完整代码如下:#!/usr/bin/env python#coding:utf-8import urllib2import reimport sysr
·
这段代码用于获取指定贴吧下指定页数的所有标题。
原代码不知道是使用哪位仁兄的,已经不记得了,稍微修改了下,请求超时时长为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 "---------------------结束------------------"
程序截图:
更多推荐
已为社区贡献1条内容
所有评论(0)