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深入学习之装饰器
Aug 31 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
简单的python协同过滤程序实例代码
Jan 31 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
pycharm的python_stubs问题
Apr 08 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 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
Mysql的常用命令
2006/10/09 PHP
逐步提升php框架的性能
2008/01/10 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
JS获取html元素的标记名实现方法
2016/10/08 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
Python函数学习笔记
2008/10/07 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
德国旅游网站:weg.de
2018/06/03 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
软件配置管理有什么好处
2015/04/15 面试题
软件工程师岗位职责
2013/11/16 职场文书
学校门卫管理制度
2014/01/30 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
社区志愿者培训方案
2014/06/10 职场文书
群众路线对照检查材料
2014/09/22 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
小学信息技术教学反思
2016/02/16 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python