爬虫实例1:爬取百度热搜风云榜 前50条热搜 并将热搜发送至自己邮箱
1-利用requests库以及xpath 获取百度热搜风云榜的字段 如:标题title 热搜url
url = 'http://top.baidu.com/buzz?b=1&fr=topindex'
header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36','Referer': 'http://top.baidu.com/'
}
r = requests.get(url,headers=header)
r.encoding='gbk'
#print(r.text)
selector = etree.HTML(r.text)# 二次检索
eles = selector.xpath('//td[@class="keyword"]/a[1]')
#print(len(eles))
2-通过二次检索的方式 把我们需要的字段值 一一获取
ls =[]
for ele in eles:#print(index+1)# 百度热搜主题title = ele.xpath('./text()')[0]#print(title)# 百度热搜主题链接url = ele.xpath('./@href')[0]#print(url)crawled_time = datetime.now()temp_ls = {}temp_ls['title'] =titletemp_ls['url'] = urltemp_ls['crawled_time'] = str(crawled_time)ls.append(temp_ls)#print(ls)data_email =''
for index , email_ls in enumerate(ls):# 发送到邮箱显示的热搜主题内容# 将title字符串 强转为其他类型title = email_ls['title']url = email_ls['url']crawled_time = email_ls['crawled_time']html = '<p>%d:<a href="%s">热搜标题title:%s </a>爬取时间:%s</p>'%((index+1),url,title,crawled_time)#print(html)data_email+=html
#print(len(data_email))
print('邮件发送的总字符数目:',len(data_email))
3-邮箱邮件的设置
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from data import from_addr,to_addr ,qqCode # 这里是我自己新建的py文件 存放邮件发送人 收件人的账号
# SMTP邮件的发送From_addr = from_addr # 发送邮件人的账号
To_addr = to_addr #收件人的账号
#这里是SMTP邮件 接受的授权码 QQ安全等级过高 需要去开启SMTP授权
QQCode = qqCode
# smtp发送器 qq邮箱设置为这种形式 126.com设置为smtp.126.com
smtp_server = 'smtp.qq.com'
# qq接收端口 默认465 126.com默认端口25
smtp_port = 465# 配置服务器
stmp = smtplib.SMTP_SSL(smtp_server,smtp_port)
# 邮箱设置登录
stmp.login(From_addr,QQCode)
4-将邮件以html文本的形式发送至个人邮箱
# 组装邮件内容的发送
# 邮件发送内容 发送文件形式 编码格式
message =MIMEText(data_email,'html','utf-8') # 发送的内容
message['FROM']=Header('PYTHON邮件','utf-8') # 发件人
message['TO'] = Header('管理员','utf-8') # 收件人
Subject = '百度热搜风云榜'
message['subject'] =Header(Subject,'utf-8') # 邮件标题
try:stmp.sendmail(From_addr,To_addr,message.as_string())print('邮件发送成功')
except Exception as e:print('邮件发送失败!'+str(e))
5-完整代码的实现
import requests
from lxml import etree
import cssselect
from datetime import datetimeurl = 'http://top.baidu.com/buzz?b=1&fr=topindex'
header={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36','Referer': 'http://top.baidu.com/'
}r = requests.get(url,headers=header)
r.encoding='gbk'
#print(r.text)
selector = etree.HTML(r.text)# 二次检索
eles = selector.xpath('//td[@class="keyword"]/a[1]')
#print(len(eles))ls =[]
for ele in eles:#print(index+1)# 百度热搜主题title = ele.xpath('./text()')[0]#print(title)# 百度热搜主题链接url = ele.xpath('./@href')[0]#print(url)crawled_time = datetime.now()temp_ls = {}temp_ls['title'] =titletemp_ls['url'] = urltemp_ls['crawled_time'] = str(crawled_time)ls.append(temp_ls)#print(ls)data_email =''
for index , email_ls in enumerate(ls):# 发送到邮箱显示的热搜主题内容# 将title字符串 强转为其他类型title = email_ls['title']url = email_ls['url']crawled_time = email_ls['crawled_time']html = '<p>%d:<a href="%s">热搜标题title:%s </a>爬取时间:%s</p>'%((index+1),url,title,crawled_time)#print(html)data_email+=html
#print(len(data_email))
print('邮件发送的总字符数目:',len(data_email))# 发送邮件 给本地邮箱 这里采取发送邮件给QQ邮箱 即xxxxxx@qq.com
# 发生给本地邮箱的方式可以以文本形式发送 但不简洁 另一种以html形式 干净简洁 这里采用html形式发送import smtplib
from email.mime.text import MIMEText
from email.header import Header
from data import from_addr,to_addr ,qqCode # 这里是我自己新建的py文件 存放邮件发送人 收件人的账号
# SMTP邮件的发送From_addr = from_addr # 发送邮件人的账号
To_addr = to_addr #收件人的账号
#这里是SMTP邮件 接受的授权码 QQ安全等级过高 需要去开启SMTP授权
QQCode = qqCode
# smtp发送器 qq邮箱设置为这种形式 126.com设置为smtp.126.com
smtp_server = 'smtp.qq.com'
# qq接收端口 默认465 126.com默认端口25
smtp_port = 465# 配置服务器
stmp = smtplib.SMTP_SSL(smtp_server,smtp_port)
# 邮箱设置登录
stmp.login(From_addr,QQCode)# 组装邮件内容的发送
# 邮件发送内容 发送文件形式 编码格式
message =MIMEText(data_email,'html','utf-8') # 发送的内容
message['FROM']=Header('PYTHON邮件','utf-8') # 发件人
message['TO'] = Header('管理员','utf-8') # 收件人
Subject = '百度热搜风云榜'
message['subject'] =Header(Subject,'utf-8') # 邮件标题
try:stmp.sendmail(From_addr,To_addr,message.as_string())print('邮件发送成功')
except Exception as e:print('邮件发送失败!'+str(e))
6-实现的代码截图
爬虫实例1:爬取百度热搜风云榜 前50条热搜 并将热搜发送至自己邮箱相关推荐
- python爬虫No.1|爬取网易云音乐歌手的前50首歌曲ID及名字
自学pythonのNo.5 引语 知识总结 Requests XPath 案例 曾经有这样的梗黑网易云音乐 实际上网易云是很不错的音乐软件之一.这个梗挺让我不舒服的,挫折谁都有,矫情没必要但对矫情之人 ...
- Python爬虫实战之爬取百度贴吧帖子
Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...
- 2021-02-27爬虫实例(爬取照片)以虎牙为例
爬虫实例(爬取照片)以虎牙为例 开始之前点赞,投币加关注哦 开发环境:Python3.7 开发软件:PyCharm Edu 第一步:导入第三方库(模块) # 导入第三方库 import request ...
- 写一个爬虫,可以爬取百度文库内容
爬取百度文库内容需要使用爬虫技术.以下是一个简单的 Python 爬虫示例: import requestsurl ="https://wenku.baidu.com/view/your_d ...
- 百度贴吧界面html程序代码,python爬虫例题:爬取百度贴吧评论区图片和视频
百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,本期Python教程带大家通过搜索关键字来获取评论区的图片和视频. [二.项目目 ...
- python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片
当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...
- Python爬虫实战之爬取百度音乐歌曲
Python爬虫爬取百度音乐歌曲 整体思路如下: 1.搜索:通过搜索界面输入歌手名字找到歌手的歌曲信息.千千音乐:网址 2.找到歌曲信息:通过遍历歌曲列表信息界面获取每个歌曲的ID,以及歌曲的总数 3 ...
- Python爬虫实例: 爬取“最好大学网”大学排名
实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...
- 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据
好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...
最新文章
- linux 系统 UDP 丢包问题分析思路
- 【编译原理】第二章课后习题(王生原版)
- Maven知识- repositories
- python在字符串结尾加反斜杠_Python原始字符串和尾部反斜杠
- Android图形之HWC(二十四)
- 每日算法系列【LeetCode 1031】两个非重叠子数组的最大和
- 每日一九度之 题目1091:棋盘游戏
- OPTEE CA和TA通信 实现从java到ca
- android 如何进入安全模式,手机怎么进入安全模式
- vsftpd虚拟账户(虚拟用户,ubuntu16,舍弃虚拟用户配置文件)
- Python获取指定月份的所有天数
- 民远学院99届计算机,上海民远职业技术学院计算机基础复习题及参考答案-D套...
- QQ邮箱测试域用户密码过期邮件提示
- Unity灯光(light)
- getopt()函数简介
- 【复杂网络】网络级联模型
- 【Pytorch with fastai】第 14 章 :ResNet
- IDEA快捷键大全(详细)
- 分支定界算法理解(摘抄)
- [Unity][NGUI]悬浮点击空白区域隐藏UI
热门文章
- 如何在ThinkPadE580上安装Ubuntu双系统
- QStyle类用法总结(二)
- 计算机联网显示651,651错误代码,教您宽带连接提示错误651怎么办
- 两台家庭无线路由器中继模式组建
- 基于SSM(Spring+SpringMVC+MyBatis)+ VUE框架前后端分离的汽车预约保养
- 使用python选择结构和循环实现英雄联盟登录和注册
- 续航长到不可思议!乐檬K12 Pro体验:999元真香
- 【教师节福利】监测净化好拍档,499元买台环境猫!
- PCB设计软件之三:AD 23.0.1版本安装使用
- 我的工程师爸爸 - 音频应用DIY系列之六:录音棚