找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2054|回复: 4

[求助] python爬虫html标签提前闭合

1

主题

4

帖子

4

积分

贫民

积分
4
zhang390351078 发表于 2019-8-14 10:37:58 | 显示全部楼层 |阅读模式
  1. # -*-coding:utf-8-*-
  2. import urllib2   #基本使用所谓网页抓取,就是把URL地址中制定的网络资源从网络流中读取出来
  3. import sys    #参数,输入输出  #解析、遍历、维护"标签树"的功能树
  4. import time
  5. from bs4 import BeautifulSoup
  6. import cookielib
  7. import re
  8. import urllib

  9. #写入Excel表格需要使用的库
  10. from openpyxl import Workbook  #openpyxl (可读写excel表)专门处理2007及以上版本产生的xlsx文件
  11. reload(sys)  # reload是内置函数,传给reload的是已经存在的模块对象,而不是变量名
  12. sys.setdefaultencoding('utf_8') #设置系统默认编码
  13. print sys.version  # 打印当前版本信息
  14. sys.setdefaultencoding('utf_8')

  15. headers = {
  16.     'Accept':'******+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
  17.     'Accept-Encoding':'******',
  18.     'Accept-Language':'*******',
  19.     'Connection':'keep-alive',
  20.     'Host':'*******',
  21.     'User-Agent':'*******; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) ********15A372 Safari/604.1'
  22. }
  23. data = {
  24.     "username":"******",
  25.     "password":"*******"
  26. }
  27. post_data = urllib.urlencode(data)
  28. cookieJar = cookielib.CookieJar()
  29. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))

  30. #urllater = ['K3', 'SSC', 'SYX5','FC3D','PL35','KL8','PK10', 'LHC', 'BRNN',********,'BENZBMW','SICBO']
  31. #urlfront = '*********'
  32. #模拟网页请求(加入cookie),打印出html
  33. #for i in range(len(urllater)):
  34. #    urlinter = urlfront + str(urllater[i])
  35. #    print(urlinter)

  36. urlinter = '*********'
  37. req = urllib2.Request(urlinter, post_data, headers=headers)
  38. req.get_method = lambda: 'HEAD'
  39. result = opener.open(req)
  40. result = opener.open(urlinter)
  41. time.sleep(1)

  42. html = result.read()
  43. print(html)

  44. bs = BeautifulSoup(html ,'html.parser', from_encoding='utf_8')  # 第二个参数为文档解析器,若不传入该参数,自适应
  45. #'html.parser'
  46. alllist1 = bs.find_all('body') # 找标签
  47. print(alllist1)
复制代码

回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
zhang390351078  楼主| 发表于 2019-8-14 10:41:18 | 显示全部楼层
请问爬虫代码为什么只拿到<body ontouchstart=""><div id="app"><div class="spinner">  ,盒子只拿到第一层,后面几层div全隐藏在<div class="spinner">里面了?spinner什么意思?怎么处理爬虫数据丢失?
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
zhang390351078  楼主| 发表于 2019-8-14 11:02:35 | 显示全部楼层
顶一下,求助
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
zhang390351078  楼主| 发表于 2019-8-15 14:24:54 | 显示全部楼层
顶一下啊,求助
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
Terra 发表于 2019-8-27 11:36:17 | 显示全部楼层
使用findall('div'),可以获取到所有div 的tag,至于class里面的内容不重要,那个是用来做标识的,可以通过class名设置html的格式等等。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表