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中append()与extend()用法分享
Mar 24 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
Python文件读写w+和r+区别解析
Mar 26 Python
python boto和boto3操作bucket的示例
Oct 30 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
python 使用openpyxl读取excel数据
Feb 18 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 Python
Python实现对齐打印 format函数的用法
Apr 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
目录,文件操作详谈―PHP
2006/11/25 PHP
php 文件上传类代码
2011/08/06 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
JS重载实现方法分析
2016/12/16 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
python学习手册中的python多态示例代码
2014/01/21 Python
python 实现敏感词过滤的方法
2019/01/21 Python
python之生产者消费者模型实现详解
2019/07/27 Python
浅谈Python 参数与变量
2020/06/20 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
C/C++程序员常见面试题一
2012/12/08 面试题
博士生入学考试推荐信
2013/11/17 职场文书
国贸专业求职信
2014/06/28 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书
学生检讨书范文
2019/06/24 职场文书