Python3+selenium+PhantomJS+scrapy获取B站排行版Ajax动态爬虫

本文介绍了如何使用Python3结合selenium、PhantomJS和scrapy构建一个爬虫,抓取B站排行版的Ajax动态数据。首先,安装必要的依赖PhantomJS,然后创建scrapy项目,编写配置文件setting.py以设置反爬策略和日志记录。接着,在items.py中定义数据存储模板,并利用PhantomJS等待网页加载完成后再进行XPath解析,抓取所需信息。
摘要由CSDN通过智能技术生成

1 安装需要的依赖

pip install selenium
pip install scrapy
pip install pymysql

PhantomJS下载地址:  http://phantomjs.org/download.html


2 创建scrapy项目

scrapy startproject bilibili
cd bilibili
scrapy genspider bilibili bilibili.com
 目录说明:

        scrapy.cfg   项目的配置信息
items.py      数据存储模板
pipelines    数据处理,数据持久化
settings.py 配置文件
spiders       爬虫目录


3  编写配置文件setting.py

这里我们设置了简单的反爬机制,随机选定一个浏览器头,开启了日志记录,对原有的默认设置做了简单的定制

# -*- coding: utf-8 -*-

import random
BOT_NAME = 'Bilibili'
SPIDER_MODULES = ['Bilibili.spiders']
NEWSPIDER_MODULE = 'Bilibili.spiders'

 # 数据库配置
DBKWARGS={'db':'ABVideos','user':'root', 'passwd':'root',
    'host':'localhost','use_unicode':True, 'charset':'utf8'}

# DOWNLOAD_HANDLERS = {'S3':None}
#日志文件
LOG_FILE = "BVideosScrapy.log"

# 浏览器请求头,很多网站都会检查客户端的headers,
# 比如豆瓣就是每一个请求都检查headers的user_agent,否则只会返回403,可以开启
DEFAULT_REQUEST_HEADERS = {
 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 'Accept-Language': 'en',
}
#中间件设置
DOWNLOADER_MIDDLEWARES = {
   'Bilibili.middlewares.UserAgentMiddleware': 400,
   'Bilibili.middlewares.bilibiliDownloaderMiddleware': 401,
    #调用中间件
     # 'scrapy_crawlera.CrawleraMiddleware': 600
 }
CRAWLERA_PRESERVE_DELAY = True
CRAWLERA_ENABLED = True
CRAWLERA_USER = 'a357e516e11440a9846f32067f6d9cb6'
CRAWLERA_PASS = ''

#浏览器请求头,这个必须要有
USER_AGENT_LIST=[
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Ch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值