python抓取需要扫微信登陆页面


Posted in Python onApril 29, 2019

  一,抓取情况描述

1.抓取的页面需要登陆,以公司网页为例,登陆网址https://app-ticketsys.hezongyun.com/index.php ,(该网页登陆方式微信扫码登陆)

2.需要抓取的内容如下图所示:

需要提取

工单对应编号,如TK-2960

工单发起时间,如2018-08-17 11:12:13

工单标题内容,如设备故障

工单正文内容,如最红框所示

python抓取需要扫微信登陆页面

二,网页分析

1.按按Ctrl + Shift + I或者鼠标右键点击检查进入开发人员工具。

可以看到页面显示如下:

python抓取需要扫微信登陆页面

主要关注点如上图框住和划线处

首先点击网络,记住以下信息将用于代码修改处。

Resquest URL:https: //app-ticketsys.hezongyun.com/index.php/ticket/ticket_list/init这个是需要爬取页面的信息请求Menthod:GET饼干:用于需要登陆页面User-Agent:Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,类似Gecko)Chrome / 67.0.3396.62 Safari / 537.36

记住以上信息后粗略了解网页树形结构用BeatifulSoup中SELEC怎么取出内容

示例:的H1M1一段代码如下:

html =“”“
<html> <head> <title>睡鼠的故事</ title> </ head>
<body>
<p class =”title“name =”dromouse“> <b>睡鼠的故事</ b > </ p>
<p class =“story”>从前有三个小姐妹;他们的名字是
<a href =“http://example.com/elsie”class =“sister”id =“ link1“> <! - Elsie - > </a>,
<a href="http://example.com/lacie" rel="external nofollow" class="sister" id="link2"> Lacie </a>和
<a href =“http://example.com/tillie”class =“sister”id =“link3”> Tillie </a>;
他们住在井底。</ p>
<p class =“story”> ... </ p>
“”“

如果我们喝汤得到了上面那段HTML的结构提取内容方法如下

1.通过标签名查找soup.select( '标题'),如需要取出含有一个标签的内容则soup.select( 'a')的

2.通过类名查找soup.select( 'CLASS_NAME ')如取出标题的内容则soup.select('。标题')

3.通过ID名字查找soup.select( '#ID_NAME')如取出ID = LINK2的内容则soup.select( '#LINK2')

上述元素名字可以利用左上角箭头取出,如下图

python抓取需要扫微信登陆页面

三,程序编写

# -*- coding:utf-8 -*-
import requests
import sys
import io
from bs4 import BeautifulSoup
import sys
import xlwt
import urllib,urllib2
import re
def get_text():
  #登录后才能访问的网页,这个就是我们在network里查看到的Request URL
  url = 'https://app-ticketsys.hezongyun.com/index.php/ticket/ticket_iframe/'
  #浏览器登录后得到的cookie,这个就是我们在network里查看到的Coockie
  cookie_str = r'ci_ticketsys_session=‘***********************************'
  #把cookie字符串处理成字典
  cookies = {}
  for line in cookie_str.split(';'):
    key, value = line.split('=', 1)
    cookies[key] = value
  #设置请求头
  headers = {'User-Agent':'Mozilla/5.0(Windows NT 10.0; Win64;x64)AppleWebKit/537.36 (KHTML, like Gecko)Chrome/67.0.3396.62 Safari/537.36'}
  #在发送get请求时带上请求头和cookies
  resp = requests.get(url, cookies = cookies,headers = headers)
  soup = BeautifulSoup(resp.text,"html.parser")
  print soup

上述代码就能得到登陆网页的HTML源码,这个源码呈一个树形结构,接下来针对需求我们提取需要的内容进行提取

我们需要工单号,对应时间,对应标题

python抓取需要扫微信登陆页面

按箭头点击到对应工单大块,可以查询到,所有的工单号,工单发起时间,工单标题均在<ul id =“ticket-list”>这个id下面

python抓取需要扫微信登陆页面

那么点开一个工单结构,例如工单号ID = “4427” 下面我们需要知道工单号,工单发起时间,工单内容可以看到

1.工单内容在H3标签下面

2.工单编号在类=“NUM”下面

3.工单发起时间在类= “时间” 下面

for soups in soup.select('#ticket-list'):
  if len(soups.select('h3'))>0:
    id_num = soups.select('.num')
    star_time = soups.select('.time')
    h3 = soups.select('h3')
    print id_num,start_time,h3

总结

以上所述是小编给大家介绍的python抓取需要扫微信登陆页面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现统计代码行数的方法
May 22 Python
深入理解python对json的操作总结
Jan 05 Python
Python的时间模块datetime详解
Apr 17 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
Python实现FM算法解析
Jun 18 Python
如何基于Python批量下载音乐
Nov 11 Python
python3下pygame如何实现显示中文
Jan 11 Python
Python文件操作方法详解
Feb 09 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
为什么是 Python -m
Jun 19 Python
Python识别处理照片中的条形码
Nov 16 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 Python
python基于itchat模块实现微信防撤回
Apr 29 #Python
手把手教你使用Python创建微信机器人
Apr 29 #Python
python实现微信防撤回神器
Apr 29 #Python
python实现文件助手中查看微信撤回消息
Apr 29 #Python
Python实现微信消息防撤回功能的实例代码
Apr 29 #Python
python控制nao机器人身体动作实例详解
Apr 29 #Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 #Python
You might like
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP Error与Logging函数的深入理解
2013/06/03 PHP
PHP生成器简单实例
2015/05/13 PHP
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python yield使用方法示例
2013/12/04 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python实现的特征提取操作示例
2018/12/03 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
详解Python 中的容器 collections
2020/08/17 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
《莫泊桑拜师》教学反思
2014/04/23 职场文书
个人担保书格式范文
2014/05/12 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
交通事故协议书范本
2014/11/18 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python