python通过base64对用户名和密码进行加密,通过windows身份验证进行登录,然后用BeautifulSoup对网页进行抓取,并通过smtplib和MIMEText将数据发送到指定邮箱
下面直接上代码
# -*- coding: utf-8 -*-
import urllib2
import sys
import ssl
import base64
from bs4 import BeautifulSoup
import smtplib # 加载smtplib模块
from email.mime.text import MIMEText
from email.utils import formataddr
import time
import re
# 该方法为替换字符串方法,将text替换成adict
def multiple_replace(text, adict):
rx = re.compile('|'.join(map(re.escape, adict)))
def one_xlat(match):
return adict[match.group(0)]
return rx.sub(one_xlat, text) # 每遇到一次匹配就会调用回调函数
def web_crawler(theurl):
# 用户名和密码
username = '****'
password = '****'
ssl._create_default_https_context = ssl._create_unverified_context # 忽略证书的验证
# 对用户名和密码进行base64加密传送
base64string = base64.encodestring('%s:%s' % (username, password))[:-1]
authheader = "Basic %s" % base64string
# theurl 的请求
req = urllib2.Request(theurl) # 向服务器发送一个Request请求
req.add_header("Authorization", authheader) # 请求头里添加authheader信息
try:
# 对theurl 的请求进行处理
handle = urllib2.urlopen(req) # 打开网址
thepage = handle.read() # 读取网页信息
return thepage