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 实现插入排序算法
Jun 05 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python实现连接mongodb的方法
May 08 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Python制作exe文件简单流程
Jan 24 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 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
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
PHP7.0版本备注
2015/07/23 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
第一次接触JS require.js模块化工具
2016/04/17 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
python实现Flappy Bird源码
2018/12/24 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
python 画图 图例自由定义方式
2020/04/17 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
数据库基础的一些面试题
2012/02/25 面试题
医学类个人求职信范文
2014/02/05 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
文化建设工作方案
2014/05/12 职场文书
新学期开学演讲稿
2014/05/24 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
实习生矿工检讨书
2014/10/13 职场文书
朋友离别感言
2015/08/04 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
MySql分区类型及创建分区的方法
2022/04/13 MySQL