Python3.5

应朋友之约,帮他做个爬虫,并且每个网页的数据都分别导入到excel中。

目标网站:http://www.hs-bianma.com/hs_chapter_01.htm

根据我的观察,网页采取的是<td><th>制成表格来存放数据,属于非常简单的类型。因为Python自带有非常好的网页处理模块,因此前后代码花费时间在30分钟。

网站:

网页源代码:

需要模块:BeautifulSoup、Request、xlwt

废话不多说,直接上代码:

  1. from bs4 import BeautifulSoup
  2. from urllib import request
  3. import xlwt
  4. #获取数据
  5. value=1
  6. while value<=98:
  7. value0=str(value)
  8. url = 'http://www.hs-bianma.com/hs_chapter_'+value0+'.htm'
  9. #url='http://www.hs-bianma.com/hs_chapter_01.htm'
  10. '''此行可以自行更换代码用来汇集数据'''
  11. response = request.urlopen(url)
  12. html = response.read()
  13. html = html.decode('utf-8')
  14. bs = BeautifulSoup(html,'lxml')
  15. #标题处理
  16. title = bs.find_all('th')
  17. data_list_title=[]
  18. for data in title:
  19. data_list_title.append(data.text.strip())
  20. #内容处理
  21. content = bs.find_all('td')
  22. data_list_content=[]
  23. for data in content:
  24. data_list_content.append(data.text.strip())
  25. new_list=[data_list_content[i:i+16] for i in range(0,len(data_list_content),16)]
  26. #存入excel表格
  27. book=xlwt.Workbook()
  28. sheet1=book.add_sheet('sheet1',cell_overwrite_ok=True)
  29. #标题存入
  30. heads=data_list_title[:]
  31. ii=0
  32. for head in heads:
  33. sheet1.write(0,ii,head)
  34. ii+=1
  35. #print(head)
  36. #内容录入
  37. i=1
  38. for list in new_list:
  39. j=0
  40. for data in list:
  41. sheet1.write(i,j,data)
  42. j+=1
  43. i+=1
  44. #文件保存
  45. book.save('sum'+value0+'.xls')
  46. value += 1
  47. print(value0+'写入完成!')
  48. print('全部完成')
(0)

相关推荐