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计算三角函数之asin()方法的使用
May 15 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
浅谈对yield的初步理解
May 29 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Python3.7 新特性之dataclass装饰器
May 27 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
Python实现微信好友的数据分析
Dec 16 Python
使用Python防止SQL注入攻击的实现示例
May 21 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
教你漂亮打印Pandas DataFrames和Series
May 29 Python
深入理解Pytorch微调torchvision模型
Nov 11 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP中实现获取IP和地理位置类分享
2015/02/10 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
Dojo 学习要点
2010/09/03 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
python实现取余操作的简单实例
2020/08/16 Python
Python中生成ndarray实例讲解
2021/02/22 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
普天C++笔试题
2016/03/20 面试题
linux下进程间通信的方式
2014/12/23 面试题
Unix/Linux开发面试题
2016/08/16 面试题
建筑工程造价专业自荐信
2014/07/08 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
求职意向书范本
2015/05/11 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB