python初级爬虫实例

强调一下,我并不是一个程序员,因为最近需要去爬某个网站的信息写的这个程序。程序中有很多不规范的地方,也没用运用函数。只适合有简单爬虫需要的人参考。数据量大的时候采集速度很慢。

也希望有大佬能优化一下。

程序是基于python3的

import urllib.request

import re

import xlwt

workbook = xlwt.Workbook(encoding = 'ascii') #这里是创建一个excel把爬取到的数据储存到表格中

worksheet = workbook.add_sheet('My Worksheet') #在excel中创建一个表单

style = xlwt.XFStyle() # 初始化样式

font = xlwt.Font() # 为样式创建字体

font.name = 'Times New Roman'

font.bold = True # 黑体

font.underline = True # 下划线

font.italic = True # 斜体字

style.font = font # 设定样式

# with open('cal.txt','r') as f: # 读取txt生成列表 这里是在我爬去了全部数据后筛选的一些对我有用的页面信息编码

# line = f.read().strip()

# linestr = line.split("\n")

count = 135

while (count < 9300):

try:

u = "http://****************/" #url前缀

url=(u +str(count))

header = {"User-Agent": "Mozilla5.0 (Windows NT 6.1; WOW64; rv:59.0) Gecko/20100101 Firefox/59.0"} #这个头是我复制粘贴的 就带着就好了不用改

request = urllib.request.Request(url, headers=header) #请求网页

response = urllib.request.urlopen(request,timeout=60) #timeout设置超时的时间,防止出现访问超时问题

# 取出json文件里的内容,返回的格式是字符串

html = response.read()

# 把json形式的字符串转换成python形式的Unicode字符串,unicodestr为数组

html = html.decode("UTF-8",)

reg1 = re.compile(r'(.*?)')

reg = re.compile(r'投票(.*?)')

url1 = re.findall(reg1, html)

url = re.findall(reg, html)

print('序号:', count, '作品编号', str(count), '作品名:', url1, '得票数:', url)

worksheet.write(count, 0, count) # 第一行第一列

worksheet.write(count, 1, url1) # 第二行第二列

worksheet.write(count, 2, url) # 第二行第二列

workbook.save('**********.xls') # 保存文件

count += 1

except Exception as e:

print('a', str(e))


分享到:


相關文章: