`
zhouxianglh
  • 浏览: 267663 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Python3模拟登录获取页面内容

阅读更多
# zhouxianglh 2013.05.03 python3.3
# Python 模拟登录,然后记录cookie,之后获取公司OA主页公文信息
import urllib.request
import http.cookiejar
from html.parser import HTMLParser
import re
import os
import shutil
# 公文HTML下载目录
filePath = "D:\\temp"

# 初始化文件目录
if  os.path.isdir(filePath):
    shutil.rmtree(filePath)
elif os.path.isfile(filePath):
    os.remove(filePath)
os.makedirs(filePath)

# 登录并获取最新的公文列表
params = {"username":"??????", "password":"???????"}
webCookie = http.cookiejar.CookieJar()
openner = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(webCookie))
webRequest = openner.open("http://192.168.8.109/default.asp", urllib.parse.urlencode(params).encode())
webRequest = openner.open("http://192.168.8.109/noticelook.asp")
htmlData = webRequest.read().decode('gbk')  # 网页是用gbk编码,所以这里用gbk编码

# map,用于记录首页的公文URL
OApages = {}
# 解析HTML,HTMLParser为系统默认的解析方式,HTML文件具有容错性,所以最好不使用xml解析
# 解析公文首页的公文列表
class MyHtmlParser(HTMLParser):
    _a_Flag = False
    _a_title = ""
    def handle_starttag(self, tag, attrs):
        if tag == "a":  # 解析公文相关的URL
            for pageUrl in attrs:
                if pageUrl[0] == 'href':
                    self._a_Flag = True
                    self._a_URL = pageUrl[1]
                    self._a_URL = self._a_URL.replace("javascript:openwin('", "http://192.168.8.109/")
                    self._a_URL = self._a_URL.replace("');", "")
    def handle_data(self, data):
        if self._a_Flag :
            self._a_title = self. _a_title + data
    def handle_endtag(self, tag):
        if tag == "a":
            self._a_title = re.sub("\W", "", self._a_title)
            OApages[self._a_URL] = self._a_title
            self._a_title = ""
            self._a_Flag = False
            
MyHtmlParser().feed(htmlData)

# 转码URL中的中文字符串
def encoderForUrl(strURL):
    # 0 将非特殊字符串替换掉
    _tempStr = re.sub("[a-z\d&/:.?=]+", ";", strURL)
    # 1 获取中文字符串
    _tempStrArr = _tempStr.split(";")
    # 2用中文转码后的字符串替换中文字符串
    for _tempStrValue in _tempStrArr:
        strURL = strURL.replace(_tempStrValue, urllib.parse.quote(_tempStrValue))
    return strURL

# 下载公文内容
print("公文首面共", len(OApages), "条公文")
for url, title in OApages.items():
    url = encoderForUrl(url)  # 这里的URL里面的参数抱括中文,例如name=小胖子,直接使用会出错,所以要将其转码
    webRequest = openner.open(url)
    htmlData = webRequest.read().decode('gbk')
    dataFile = open(filePath + os.sep + title + ".html", "w")
    dataFile.write(htmlData)
    print("写入公文:", title, "成功")

 

以上是使用Python获取公司OA的公文HTML的代码

 

分享到:
评论

相关推荐

    python模拟浏览器获取网页内容

    python urllib or requests模块模拟浏览器获取网页内容

    Python3模拟微博登录.rar

    在Python3中,模拟微博登录是一项常见的网络爬虫任务,主要目的是为了自动化地获取和处理微博上的数据。这个“Python3模拟微博登录.rar”压缩包很可能包含了一个完整的示例项目,教你如何使用Python来实现这一功能,...

    python爬虫之天眼查模拟登录.zip

    代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~代码仅供参考学习~天眼查模拟登录天眼查...2. 实现目标:使用Python编写爬虫脚本,模拟用户在天眼查网站上进行自动登录,获取登录后的页面信息

    Python-通过模拟登录的方式从H3C交换机中获取ACL的撞包数量变化并实现报警

    在这个项目中,我们将深入探讨如何利用Python进行模拟登录,从H3C交换机中获取访问控制列表(ACL)的撞包(packet counter)数量变化,并实现异常情况的自动报警。下面,我们详细讲解这一过程的关键知识点。 首先,...

    Python-模拟登录一些知名的网站为了方便爬取需要登录的网站

    在Python编程领域,模拟登录是Web爬虫技术中不可或缺的一部分,尤其当我们需要抓取那些受保护的、需要用户登录后才能访问的网站内容时。本文将深入探讨如何使用Python进行模拟登录,以便能够爬取知名网站上的数据。 ...

    python爬虫模拟浏览器访问-User-Agent过程解析

    在爬虫模拟浏览器访问中,User-Agent通常用来向网站标识当前模拟的浏览器信息,这对于获取正常的内容非常重要。许多网站会根据请求头中的User-Agent来区分是正常的浏览器访问还是爬虫程序的访问,从而可能对爬虫返回...

    Python-模拟登录各类网站操作api完成各种不可描述的事情

    在模拟登录过程中,我们需要发送带有登录信息的POST请求到服务器的登录页面。 2. **Cookie管理**:登录成功后,服务器通常会返回一个或多个Cookie,用于保持会话状态。`requests`库可以方便地处理Cookie,确保后续...

    python3模拟b站登录(破解验证码)源码.rar

    Python的requests库是进行HTTP请求的好帮手,它可以方便地发送GET和POST请求,获取网页内容。 三、模拟登录 模拟登录通常包括获取登录页面、填写表单(如用户名、密码)、处理验证码、提交登录请求等步骤。在B站的...

    Python程序设计:Python模拟网站登录.pptx

    Python模拟网站登录 INTERNATIONAL MEDICAL SUMMIT FORUM 任务 Python模拟网站登录 任务背景 大多数网站需要登录才可以进行相应的操作。对网站进行扫描的过程中如果遇到登录则需要我们设计符合要求的代码自动登录到...

    Python Requests模拟登录实现图书馆座位自动预约

    模拟登录是通过编程方式模拟用户在浏览器上进行登录操作,通常涉及获取登录页面的Cookie和隐藏的表单字段,然后构造并发送登录请求。 Python Requests库是一个非常流行的HTTP客户端库,它使得发送HTTP请求变得简单...

    python 爬虫模拟登陆csdn

    Python爬虫模拟登陆CSDN是一项常见的Web自动化任务,它涉及到使用编程语言与网站进行交互,获取需要的数据。本文将详细讲解如何使用Python的Selenium库来实现这一目标。 首先,Selenium是一个强大的Web测试框架,它...

    python 调用IEHtmlWindow打印网页

    在Python编程中,有时我们需要与浏览器交互,例如自动化测试、数据抓取或模拟用户操作。在这样的场景下,调用浏览器的某些功能,比如打印网页,就显得尤为重要。本篇文章将详细讲解如何使用Python调用IEHtmlWindow来...

    Python爬虫实战 - 模拟登陆各大网站

    总的来说,Python模拟登录网站主要包括以下几个步骤: 1. 分析目标网站的登录页面,获取表单数据和HTTP头。 2. 使用`requests`库创建Session对象,管理Cookie。 3. 构造并发送登录请求,包括用户名、密码等信息。 4....

    python 登录购票网站

    登录过程中,开发者首先需要发送一个GET请求获取登录页面,以获取任何可能的CSRF令牌或其他必要的表单数据。然后,构建POST请求,包含用户名、密码以及可能的验证码信息。如果网站使用了滑动验证码或者图片验证码,...

    python模拟爬虫抓取网页内容 采集网页.rar

    python爬虫模拟抓取网页内容,采集网页的内容,这里主要是模拟抓取新浪微博中的内容,里面包括了[源码] 爬取客户端微博信息、[源码] 爬取移动端个人信息 关注id和粉丝id (速度慢)、[源码] 爬取移动端微博信息 (强推)...

    iPhone获取手机型号Python代码

    在Python编程语言中,获取iPhone或其他移动设备的型号信息是一项常见的任务,特别是在自动化测试、数据分析或者设备特定功能开发时。本篇文章将详细讲解如何通过Python实现这一目标。 首先,我们需要理解的是,...

    python爬虫模拟知乎登录.zip

    Python爬虫模拟知乎登录是网络数据采集领域中的一个重要实践,主要涉及到如何利用Python编程语言以及相关的库来模拟浏览器的行为,实现自动登录网站并获取登录后才能查看的数据。在这个案例中,我们将聚焦于Python的...

    python 自动填写验证码 获取亚马逊商品会员活动记录

    对于Ajax加载的内容,可能需要利用requests的session对象或直接使用Selenium来模拟完整页面加载过程。 在实际操作中,首先需要分析目标网页的结构,确定会员活动记录数据的存放位置。如果数据是加密或隐藏的,可能...

    网络世界的密钥:Python 爬虫模拟登录与会话管理全攻略

    1. **请求处理**:使用 Python 的 `requests` 库来发送 HTTP 请求,获取网页内容。 2. **内容解析**:使用 `BeautifulSoup`、`lxml` 或 `pyquery` 等库来解析 HTML 或 XML 格式的网页内容。 3. **数据提取**:编写...

    python模拟登陆163邮箱并获取通讯录.zip

    综上所述,这个"python模拟登陆163邮箱并获取通讯录"的项目涵盖了Python网络编程的多个方面,包括HTTP请求、网页解析、cookie管理、API调用以及数据解析等。通过这个项目,开发者不仅可以深入理解网络编程,还可以...

Global site tag (gtag.js) - Google Analytics