实现网页数据可视化
Web数据挖掘
项目内容:
根据指定的标题或者内容关键字,爬取网易邮件标题、日期、发件人、邮件内容信息,并将爬取的内容存成Excel 文件。
要求:整个爬取过程实现全自动或者半自动登录,输入标题或者内容关键字,然后自动完成爬取和信息存储。
首先是先了解所需的工具,在pycharm中导入相应的函数
import urllib.request
import re
import http.cookiejar
import urllib.parse
import xlwt
import jieba
import jieba.posseg as pseg
初始化
import urllib.request
import re
import http.cookiejar
import urllib.parse
import xlwt
import jieba
import jieba.posseg as pseg
class MAIL:
def __init__(self):
#获取登录请求的网址,请求登陆的URL
self.loginUrl = "https://mail.163.com/entry/cgi/ntesdoor?style=-1&df=mail163_letter&net=&language=-1&from=web&race=&iframe=1&product=mail163&funcid=loginone&passtype=1&allssl=true&url2=https://mail.163.com/errorpage/error163.htm"
#设置代理,以防止本地IP被封
self.proxyUrl = "http://202.106.16.36:3128"
#初始化sid码
self.sid = ""
#第一次登陆所需要的请求头request header
self.loginHeaders = {
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,,image/webp,image/apng,*/*;q=0.8",
'Accept-Language': "zh-CN,zh;q=0.9",
'Connection': "keep-alive",
'Host': "mail.163.com",
'Referer': "http://mail.163.com/",
'User-Agent':"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36"
}
#设置用户名和密码
self.username = '' #163邮箱账号
self.pwd = '' #邮箱密码
#post所包含的参数
self.post = {
'savelogin':"0",
'url2':"http://mail.163.com/errorpage/error163.htm",
'username':self.username,
'password':self.pwd
}
#对post编码转换
self.postData = urllib.parse.urlencode(self.post).encode('utf8')
# 使用http.cookiejar.CookieJar()创建CookieJar对象
self.cjar = http.cookiejar.CookieJar()
# 使用HTTPCookieProcessor创建cookie处理器,并以其为参数构建opener对象
self.cookie = urllib.request.HTTPCookieProcessor(self.cjar)
print(self.cookie.cookiejar)
self.opener = urllib.request.build_opener(self.cookie)
# 将opener安装为全局
urllib.