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里对list中的整数求平均并排序
Sep 12 Python
深入理解Python 代码优化详解
Oct 27 Python
python实现自动登录人人网并采集信息的方法
Jun 28 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
python的移位操作实现详解
Aug 21 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
python Django框架快速入门教程(后台管理)
Jul 21 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
在python中pandas的series合并方法
2018/11/12 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python对Excel的读取的示例代码
2020/02/14 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
Python如何定义有默认参数的函数
2020/08/10 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
小学生安全保证书
2014/02/01 职场文书
2015高考寄语集锦
2015/02/27 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
Python Pandas 删除列操作
2022/03/16 Python