学习笔记之爬虫篇

author author     2022-09-16     483

关键词:

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


模块: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+‘
‘)
    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))

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


学习笔记之pyquery篇

什么是PyQuery?  这是一个强大又灵活的网页解析库。  如果你觉得写正则太麻烦,  如果你觉得BeautifulSoup语法太难记,  如果你熟悉jQuery,  那么,PyQuery将会成为你的最佳实践!#一个简单的例子from... 查看详情

docker学习笔记之网络篇

一、网络docker提供几种网络,它决定容器之间和外界和容器之间怎么样去相互通信。查看网络,我们可以执行:dockernetworkls650)this.width=650;"src="https://mmbiz.qpic.cn/mmbiz_png/rtibSseGoBickKAsUTQWT3LB0IwZbVvkGibnlicIY1MmQqItURJuib1coNqPzsmuE5ZMaFP9654 查看详情

sass学习笔记之入门篇

...提供多种功能来创建可维护和管理的样式表。以下是我的学习笔记。Sass安装环境1.安装sass(mac)①:Ruby安装②:安装sasssudogeminstallsass可以通过sass-v检测是否完成安装 2.更新sassgemu 查看详情

学习笔记之xlsx文件操作篇

利用python3进行xlsx文件的简单操作模块:xlsxwriter环境:centos/Linux1、创建excel文件2、创建sheet表3、开始书写sheet表的正文先来一串代码压压惊#############建立xlsx文件并写入数据 图片################import xlsxwriterworkbook = xl... 查看详情

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表。 发布这些文档最快速有效的方法就是发送邮件。  python中email模块使得处理邮件变得比较简单   &nbs... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

学习笔记之csrf初级篇

什么是CSRFCSRF(Cross-siterequestforgery跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用... 查看详情

博客目录

【第一篇】python学习——基础篇之基本数据类型(一)【第二篇】python学习——基础篇之基本数据类型(二)【第三篇】python学习——基础篇之文件操作【第四篇】python学习——基础篇之常用模块【第五篇】pyt... 查看详情

vue学习笔记之-起步篇:vue与reactangular的区别

...是现在比较火的前端框架。这几个框架都各有所长,选择学习哪种就得看个人喜好或者实际项目了。相比之下, Vue是轻量级且容易学习掌握的。1、Vue和React相似之处都使用虚拟DOM提供了响应式(Reactive)和组件化(Composable)... 查看详情

学习笔记之01程序员起航篇

...苦,但是有付出就会有收获,一分耕耘一分收获,要不断学习,持之以恒,以后学过的课要及时总结、记录、巩固。   程序猿工作过程中要稳住心,坐定,坚持下去。既然决定走下去学点东西一定要坚持  & 查看详情

学习笔记之xss原理篇

什么是xss  XSS又叫CSS(CrossSiteScript),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意的特殊目的。XSS属于被动式的攻击,因为其... 查看详情

学习sass笔记之概念篇

 1什么是CSS预处理器首先我们了解一下什么是CSS预处理器:通俗的说,“CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需... 查看详情

设计模式学习笔记之开山篇

之前的一年多时间,受设计模式无用论这种影响,学习Java时候跳过了设计模式的学习,现在看来是大错特错的事情,看了Java编程思想很多jdk的设计都用了很多设计模式看的不是很明白,为什么这么写?明明很简单的代码为什么... 查看详情

ip地址和子网划分学习笔记之《ip地址基础篇》

一、IP地址和MAC地址1、MAC地址MAC(MediaAccessControl,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同... 查看详情