学习笔记之爬虫篇

网络爬虫(又被称为网页蜘蛛,网络机器人,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。

模块:scrapy  requests

环境:centos

******************  如果想深入了解scrapy 请绕路  *************************

推荐   http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

第一种:利用爬虫模块scrapy

1、建立爬虫  scrapy start object 爬虫目录名

例:scrapy start object tututu       #tututu为爬虫目录名

2、在 爬虫目录名/爬虫目录名/spider/ 下建立爬虫文件

例:vim pachong.py

3、书写爬虫代码

import scrapy

class DmozSpider(scrapy.Spider):
    name="dadada"                                #定义爬虫名字 固定格式用name=‘爬虫名‘
    start_urls = [
        "http://www.cnblogs.com/wangkongming/default.html?page=22",
        "http://www.cnblogs.com/wangkongming/default.html?page=21",
    ]                                            #启始的url   固定格式用start_urls=[]

    def parse(self,response):                    
        filename = response.url.split("/")[-2]   #response.url  即要爬取的url
        with open(filename,"wb") as f:                
            f.write(response.body)               #response.body  爬取到的网页代码

4、启动代码 scrapy crawl dadada       #这里的dadada为爬虫的名字

第二种:利用requests模块

#coding:utf-8

from datetime import datetime
from urllib.parse import urlencode
import requests
from bs4 import BeautifulSoup
import time
from itertools import product

url = "http://www.ivsky.com/"

def download_url(url):
    headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0‘}
    response = requests.get(url,headers=headers)                 #请求网页
    return response.text                                         #返回页面的源码

def connet_image_url(html):
    
    soup = BeautifulSoup(html,‘lxml‘)                           #格式化html
    body = soup.body                                            #获取网页源码的body
    data_main = body.find(‘div‘,{"class":"ileft"})              #找body到‘div‘标签  且标签中 class=ileft
    
    if data_main:
        images = data_main.find_all(‘img‘)                      #找到data_main中所有的img标签
        with open(‘img_url‘,‘w‘) as f:                         
            for i,image in enumerate(images):                   #遍历images 并添加序号
                image_url = image.get(‘src‘)                    #获取image中src的值
                f.write(image_url+‘\r‘)
    save_image()
def save_image():
    with open(‘img_url‘,‘r‘) as f:
        i=0
        headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0‘}
        for line in f:
            if line:
                i+=1
                line=line[0:(len(line)-1)]                     #切除换行符
                response = requests.get(url=line,headers=headers)
                filename=str(i)+‘.jpg‘
                with open(filename,‘wb‘) as f:
                    f.write(response.content)                  #将图片写进f
                print(‘这是第%s张图片‘%i)
connet_image_url(download_url(url))

小白笔记 如有错误 请下方评论提醒修改

时间: 2024-09-30 01:59:35

学习笔记之爬虫篇的相关文章

嵌入式学习笔记008-裸奔篇之串口

串口是个好东西,前几篇裸奔程序由于没有串口,自己调试都是有led等来表示的,比较"苦逼",终于可以用串口了~~~,这里主要采用上一篇博文(嵌入式学习笔记007-裸奔篇之定时器),也就是串口也是用中断实现的,而且也只是在前一篇博文增加串口的初始化uart0_init(),以及在中断处理函数增加对串口的处理.只要稍微改造前一篇博文就是一个通用的中断处理程序! 这里主要实现在串口输入一个字符,接受后+2再发送到串口,所以在串口输入a 会返回c---. 由于code都有相应的注释,读者自行查看

ZMAN的学习笔记之Python篇:装饰器

年前工作事务比较繁琐,我只能用零碎的时间继续学习Python,决定开一个系列的博文,作为自己深入学习Python的记录吧.名字也取好了,就叫<ZMAN的学习笔记之Python篇>~开篇是关于装饰器的,春节假期码的字哈哈~就让我们开始吧! 本文的例子都是自己想的,如果不是很合适,请大家提出宝贵意见哈~谢谢啦! 一.为什么要用“装饰器” 比如我们写了如下一段代码: # 打印0~99 def func(): for i in range(100): print(i) 我们想要监测执行这个函数花费了多

Java快速教程--vamei 学习笔记(基础篇)

链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html java快速教程第1课 从HelloWorld到面向对象 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html java快速教程第2课 方法与数据成员 学习网址:http://www.cnblogs.com/vamei/archive/2013/03/25/2964430.html java快

现代C++学习笔记之一入门篇:智能指针(C++ 11)

原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 在现代 C++ 编程中,标准库包含智能指针,该指针用于确保程序不存在内存和资源泄漏且是异常安全的. 在现代 C++ 中,原始指针仅用于范围有限的小代码块.循环或者性能至关重要且不会混淆所有权的 Helper 函数中. 1 void UseRawPointer() 2 { 3 // Using a raw pointer -- not recommended

设计模式学习笔记(目录篇)

设计模式学习笔记(目录篇) 为了方便查看,特此将设计模式学习笔记系列单独做一个目录. 1   设计模式学习笔记(一:命令模式) 2   设计模式学习笔记(二:观察者模式) 3   设计模式学习笔记(三:装饰模式) 4   设计模式学习笔记(四:策略模式) 5   设计模式学习笔记(五:适配器模式) 6   设计模式学习笔记(六:责任链模式) 7   设计模式学习笔记(七:外观模式) 8   设计模式学习笔记(八:迭代器模式) 9   设计模式学习笔记(九:中介者模式) 10  设计模式学习笔记(

Java快速教程--vamei 学习笔记(进阶篇)

感谢vamei,学习链接:http://www.cnblogs.com/vamei/archive/2013/03/31/2991531.html Java进阶01 String类 学习链接:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 字符串操作 ---------------------------------------------------------------------------------------

学习笔记-性能测试-工具篇-LR-初识

关于LR的基本信息网上都能搜到,这里就不再赘述. loadrunner的安装准备 windows环境: 前提条件: 内存:2G,硬盘空闲空间10G,安装完成后实际只占不到2G 支持winXP  SP3;32位与64位win7浏览器支持IE6-8,IE9,firefox3 若以前安装过LoadRunner,则将其卸载. 下载好需要的部件然后通过安装程序进行安装 关于破解细节,详情请百度或者谷歌. 这里找到一篇关于LR11的安装篇: http://www.cnblogs.com/yangxia-te

《Mycat学习笔记》 第二篇. MySql 读写分离与日志分析——主从多结点

1    环境说明 接上篇环境   <Mycat学习笔记> 第一篇. MySql 读写分离与日志分析——主从单结点 http://www.cnblogs.com/kaye0110/p/5134588.html 增加一套 mysql 实例,端口为3308 ,通过Binlog方式同步主机情况 localhost : 3306 主机,    在mycat 中配置为 writehost 1 localhost : 3307 从机 a ,在mycat 中配置为 readhost localhost :

学习笔记-性能测试-工具篇-LR-12的安装

进入LR的官方网站下载好最新的两个版本 两个安装文件: 先解压到同一文件夹 点击安装程序,选择安装的路径会自动安装: 安装完成后出现三个主要组件: 学习笔记-性能测试-工具篇-LR-12的安装,布布扣,bubuko.com