沙沙资源网 IT教程 scrapy框架用CrawlSpider类爬取电影天堂.

scrapy框架用CrawlSpider类爬取电影天堂.

dianyingtiantang

本文使用CrawlSpider方法爬取电影天堂网站内国内电影分类下的所有电影的名称和下载地址
CrawlSpider其实就是Spider的一个子类。
CrawlSpider功能更加强大(链接提取器,规则解释器)

#CrawlSpider一些主要功能如下 #LinkExtractor()实例化了一个链接提取对象,链接提取器:用来提取指定的链接(url) #allow参数:赋值一个正则表达式,链接提取器就可以根据正则表达式在页面中提取指定的链接 #提取到的链接全部交给规则解释器 #rules=()实例化了一个规则解析器对象 #规则解析器接受了链接提取器发送的链接后,就会对这些链接发起请求,获取链接对应的页面内容,就会根据指定的规则对页面内容指定的数据进行解析 #callback:指定一个解析规则(方法,函数) #follw:是否将链接提取器继续作用到链接提取器提取出的链接所表示的页面数据中 #LinkExtractor:设置提取链接的规则(正则表达式) allow=():设置允许提取的url restrict_xpaths=():根据xpath语法,定位到某一标签下提取链接 restrict_css=():根据css选择器,定位到某一标签下提取链接 deny=():设置不允许提取的url(优先级比allow高) allow_domains=():设置允许提取的url的域 deny_domains=():设置不允许提取url的域(优先级比allow_domains高) unique=True:如果出现多个相同的url只会保留一个,默认为True strip=True:自动去除url首位的空格,默认为True process_links=None:可以设置回调函数,对所有提取到的url进行拦截 process_request=identity:可以设置回调函数,对request对象进行拦截

0,创建scrapy项目

scrapy startproject dianyingtiantang

cd dianyingtiantang
#后面的网址先随便写,在程序里面改
scrapy genspider -t crawl dytt www.xxx.com

1,items中定义爬取的字段

import scrapy


class DianyingtiantangItem(scrapy.Item):
    # define the fields for your item here like:
    name = scrapy.Field()
    movie_url = scrapy.Field()

2,编写爬虫主程序

# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from dianyingtiantang.items import DianyingtiantangItem

class DyttSpider(CrawlSpider):
    name = 'dytt'
    # allowed_domains = ['www.xxx.com']
    start_urls = ['https://www.ygdy8.net/html/gndy/china/index.html']
    rules = (
        Rule(LinkExtractor(allow=r'/html/gndy/jddy/(\d+)/(\d+).html'), callback='parse_item', follow=True),
    )
    def parse_item(self, response):
        item = DianyingtiantangItem()
        item['name'] = response.xpath('//td/p/text()|//p[@class="title_all"]/h1/font/text()').extract_first()
        item['movie_url'] = response.xpath('//tbody/tr/td/a/@href|//tbody/tr/td/p/a/@href').extract_first()
        yield item

3,pipelines.py文件中编写永久性存储规则,写入mysql数据库和.txt文件

# 写入数据库
import pymysql
class DianyingtiantangPipeline(object):
    conn = None
    mycursor = None

    def open_spider(self, spider):
        self.conn = pymysql.connect(host='172.16.25.4', user='root', password='root', db='scrapy')
        self.mycursor = self.conn.cursor()

    def process_item(self, item, spider):
        print(item['name'] + ':正在写数据库...')
        sql = 'insert into dytt VALUES (null,"%s","%s")' % (
            item['name'], item['movie_url'])
        bool = self.mycursor.execute(sql)
        self.conn.commit()
        return item

    def close_spider(self, spider):
        print('写入数据库完成...')
        self.mycursor.close()
        self.conn.close()
# 写入.txt
class FilePipeline(object):
    f = None
    def open_spider(self,spider):
        self.f = open('dytt.txt','a+',encoding='utf-8')
    def process_item(self, item, spider):
        print(item['name'] + ':正在写入文件...')
        self.f.write(item['movie_url']+'\n')
        return item
    def close_spider(self,spider):
        print('写入文件完成...')
        self.f.close()

4,settings.py文件中打开项目管道和设置请求头

ITEM_PIPELINES = {
   'dianyingtiantang.pipelines.DianyingtiantangPipeline': 200,
   'dianyingtiantang.pipelines.FilePipeline': 300,
}

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'

5,运行爬虫程序

scrapy crawl dytt --nolog

6,查看数据库和文件内是否下载成功

可以用迅雷下载器下载电影了,

done。

转载于:https://www.cnblogs.com/nmsghgnv/p/11354514.html

《洛克王国》狂暴螳螂快速抓取方法

内容摘要:今天要为玩家介绍的是洛克王国狂暴螳螂,那么洛克王国狂暴螳螂怎么得?狂暴螳螂在哪抓?每天2点到5点在时之秘道刷怪有几率岀

征途2s智取任务做法攻略

内容摘要:征途2更新出推出了一个智取任务,那么这个智取任务要怎么样去做呢?很多重任玩家就不知道了,下面来教大家怎么样做征途2智取

dnf龙族的神圣祝福药水获取攻略

内容摘要:DNF龙族的神圣祝福药水是2013国庆套龙族的荣耀礼包的奖励,使用后 可以立即复活并恢复最大HP和最大MP的1/3,下面是详细的内

爬虫实现:根据IP地址反查域名

域名解析与IP地址 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务;IP地址是网络上标识站点

天堂图片全部图片爬取

#1.导包 import requests,os from lxml import etree from urllib.request import urlretrieve from urllib.parse import urljoi

文章回顾

大家看了本文scrapy框架用CrawlSpider类爬取电影天堂.的精彩教程资源内容,是不是对scrapy框架用CrawlSpider类爬取电影天堂.了解更多,真心希望scrapy框架用CrawlSpider类爬取电影天堂.能帮助到你, 小编会一直给你带来更多教程资源文章信息。

声明:本站内容和图片来源于网络和读者投稿,本站无法甄别投稿用户享有著作权,根据《信息网络传播权保护条例》,如果转载的作品侵犯了您的权利,请在一个月内通知我站及时删除(serviceaffair#outlook.com #改成@)。https://www.shawanolakecottagemartzke.com/135171.html
返回顶部