定向爬虫实战笔记

定向爬虫实战笔记

流程图如下:

来自追女神助手(痴汉)v0.1:

1.#-*-coding:utf8-*-2.3.import smtplib4.from email.mime.text import MIMEText5.import requests6.from lxml import etree7.import os8.import time9.import sys10.reload(sys)11.sys.setdefaultencoding(‘utf-8‘)12.13.14.15.class mailhelper(object):16.    ‘‘‘17.    这个类实现发送邮件的功能18.    ‘‘‘19.    def __init__(self):20.21.        self.mail_host="smtp.xxxx.com"  #设置服务器22.        self.mail_user="xxxx"    #用户名23.        self.mail_pass="xxxx"   #密码24.        self.mail_postfix="xxxx.com"  #发件箱的后缀25.26.    def send_mail(self,to_list,sub,content):27.        me="xxoohelper"+"<"+self.mail_user+"@"+self.mail_postfix+">"28.        msg = MIMEText(content,_subtype=‘plain‘,_charset=‘utf-8‘)29.        msg[‘Subject‘] = sub30.        msg[‘From‘] = me31.        msg[‘To‘] = ";".join(to_list)32.        try:33.            server = smtplib.SMTP()34.            server.connect(self.mail_host)35.            server.login(self.mail_user,self.mail_pass)36.            server.sendmail(me, to_list, msg.as_string())37.            server.close()38.            return True39.        except Exception, e:40.            print str(e)41.            return False42.43.class xxoohelper(object):44.    ‘‘‘45.    这个类实现将爬取微博第一条内容46.    ‘‘‘47.    def __init__(self):48.        self.url = ‘http://weibo.cn/u/xxxxxxx‘ #请输入准备抓取的微博地址49.        self.url_login = ‘https://login.weibo.cn/login/‘50.        self.new_url = self.url_login51.52.    def getSource(self):53.        html = requests.get(self.url).content54.        return html55.56.    def getData(self,html):57.        selector = etree.HTML(html)58.        password = selector.xpath(‘//input[@type="password"]/@name‘)[0]59.        vk = selector.xpath(‘//input[@name="vk"]/@value‘)[0]60.        action = selector.xpath(‘//form[@method="post"]/@action‘)[0]61.        self.new_url = self.url_login + action62.        data = {63.            ‘mobile‘ : ‘[email protected]‘,64.             password : ‘xxxxxx‘,65.            ‘remember‘ : ‘on‘,66.            ‘backURL‘ : ‘http://weibo.cn/u/xxxxxx‘, #此处请修改为微博地址67.            ‘backTitle‘ : u‘微博‘,68.            ‘tryCount‘ : ‘‘,69.            ‘vk‘ : vk,70.            ‘submit‘ : u‘登录‘71.            }72.        return data73.74.    def getContent(self,data):75.        newhtml = requests.post(self.new_url,data=data).content76.        new_selector = etree.HTML(newhtml)77.        content = new_selector.xpath(‘//span[@class="ctt"]‘)78.        newcontent = unicode(content[2].xpath(‘string(.)‘)).replace(‘http://‘,‘‘)79.        sendtime = new_selector.xpath(‘//span[@class="ct"]/text()‘)[0]80.        sendtext = newcontent + sendtime81.        return sendtext82.83.    def tosave(self,text):84.        f= open(‘weibo.txt‘,‘a‘)85.        f.write(text + ‘\n‘)86.        f.close()87.88.    def tocheck(self,data):89.        if not os.path.exists(‘weibo.txt‘):90.            return True91.        else:92.            f = open(‘weibo.txt‘, ‘r‘)93.            existweibo = f.readlines()94.            if data + ‘\n‘ in existweibo:95.                return False96.            else:97.                return True98.99.if __name__ == ‘__main__‘:100.    mailto_list=[‘[email protected]‘] #此处填写接收邮件的邮箱101.    helper = xxoohelper()102.    while True:103.        source = helper.getSource()104.        data = helper.getData(source)105.        content = helper.getContent(data)106.        if helper.tocheck(content):107.            if mailhelper().send_mail(mailto_list,u"女神更新啦",content):108.                print u"发送成功"109.            else:110.                print u"发送失败"111.            helper.tosave(content)112.            print content113.        else:114.            print u‘pass‘115.        time.sleep(30)
时间: 2024-10-06 10:25:57

定向爬虫实战笔记的相关文章

Python定向爬虫实战

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7019963.html 一:requests模块介绍 requests是第三方http库,可以十分方便地实现python的网络连接,完美替代了urllib2模块. 二:实战 使用requests实现定向爬虫需要两步:首先使用requests获取目标网页的源代码:然后使用requests与正则表达式从中提取信息. 1:获取源码 获取源码有两种方式: 使用requests.get(url).text可以直接获取无

淘宝商品与股票数据爬虫实战

在学过正则表达式后,跟着老师实战了下"淘宝商品比价定向爬虫"和"股票数据定向爬虫"这两个. 一开始我想了下,思路好迷糊,不好从哪下手.在看了老师的教程后,才慢慢的理解了.下面是代码与效果 淘宝商品比价定向爬虫: 1 import requests 2 import re 3 4 def getHTMLText(url): 5 try: 6 r = requests.get(url, timeout = 30) 7 r.raise_for_status() 8 r.e

Python爬虫实战(2):爬取京东商品列表

1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反,JavaScript实现的动态网页内容,无法从html源代码抓取需要的内容,必须先执行JavaScript. 我们在<Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容>一文已经成功检验了动态网页内容的抓取方法,本文将实验程序进行改写,使用开源Python爬虫

第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号

第三百三十节,web爬虫讲解2-urllib库爬虫-实战爬取搜狗微信公众号 封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import json import random import re import urllib.error def hq_html(hq_url): """ hq_html()封装的爬虫函数,自动启用了用户代理和ip

Python爬虫实战七之计算大学本学期绩点

大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理.最主要的是了解cookie的相关操作. 本篇目标 1.模拟登录学生成绩管理系统 2.抓取本学期成绩界面 3.计算打印本学期成绩 1.URL的获取 恩,博主来自山东大学~ 先贴一个URL,让大家知道我们学校学生信息系统的网站构架,主页是 http://jwxt.sdu.edu.cn:

Python爬虫实战四之抓取淘宝MM照片

福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 最新动态 更新时间:2015/8/2 最近好多读者反映代码已经不能用了,原因是淘宝索引页的MM链接改了.网站改版了,URL的索引已经和之前的不一样了,之前可以直接跳转到每个MM的个性域名,现在中间加了一个跳转页,本以为可以通过这个页面然后跳转到原来的个性域名,而经过一番折腾发现,这个跳转页中的内容是JS动态生成的,所以不能用Urllib库来直接抓取了,本篇就只提供学习思路,代码不能继续用了. 之后博主会利用其它方

机器学习实战笔记6(SVM)

鉴于July大哥的SVM三层境界(http://blog.csdn.net/v_july_v/article/details/7624837)已经写得非常好了,这里我就不详细描述,只是阐述简单的几个概念.如果看SVM三层境界有困惑,我也愿意与大家交流,共同进步. 简单概念描述: (1)      支持向量机(SVM, support vectormachine)就是通过最大化支持向量到分类超平面之间的分类间隔.分类超平面就是我们想要得到的决策曲面:支持向量就是离分类超平面最近的点,而间隔即为支持

[ios5 cocos2d游戏开发实战] 笔记3-FileUtils, notificationCenter

FileUtils //文件管理工具 FileUtils::getInstance() std::string getStringFromFile(const std::string& filename);//读取文件中的字符串 Data getDataFromFile(const std::string& filename);//获取文件数据 void setSearchPaths(const std::vector<std::string>& searchPaths

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht