scrapy爬虫简单案例(简单易懂|scrapy爬虫简单案例(简单易懂 适合新手)

爬取所有的电影名字,类型,时间等信息
1.准备工作

爬取的网页 https://www.ddoutv.com/f/27-1.html
创建项目
win + R 打开cmd输入
scrapy startproject 项目名
然后在pycharm终端输入
scrapy genspider 类名 xxx.com
一个爬虫类就创建好了
2.思路分析
  • 我们爬取全站数据首先要将分页的url规律找到
  • 因为我们的数据在二级页码,所以需要在一级页面里面拿到所以的二级页码url再进行请求
  • 二级页码url拿到后就可以开始写xpath获取需要的数据了*
  • 具体注释在代码内
    代码如下
    `import scrapy
from move.items import MoveItem
class TestSpider(scrapy.Spider):
name = 'Test'
# allowed_domains = ['xxx.con'] def start_requests(self): # 有4896页数据所有循环请求 for i in range(1, 4897): # html分页符用i代替 start_urls = f'https://www.ddoutv.com/f/27-{i}.html' # 手动请求url yield scrapy.Request(url=start_urls, callback=self.parse)def parse(self, response, **kwargs): # 爬取所有的二级页面的url all_a = response.xpath('//div[@class="stui-pannel-box"]/div[@class="stui-pannel_bd"]/ul/li') # 遍历出来 for li in all_a:# type:scrapy.Selector link = li.xpath('./div/a/@href').extract()[0] # 将url拼接完整 links = response.urljoin(link) # 回调 yield scrapy.Request(url=links, callback=self.reques)def reques(self, response): # 获取二级页面的数据 all_name = response.xpath('//div[@class="stui-content"]/div[@class="container"]/div[@class="row"]/div/div[2]') for i in all_name: name = i.xpath('./h1/text()').extract_first(default=0) print(name) types = i.xpath('./p[1]/a[1]/text()').extract_first(default=0) print(types) address = i.xpath('./p[1]/a[2]/text()').extract_first(default=0) print(address) year = i.xpath('./p[1]/a[3]/text()').extract_first(default=0) print(year) actor = i.xpath('./p[2]/text()').extract_first(default=0) print(actor) director = i.xpath('./p[3]/text()').extract_first(default=0) print(director) update = i.xpath('./p[4]/text()').extract_first(default=0) print(update)`

【scrapy爬虫简单案例(简单易懂|scrapy爬虫简单案例(简单易懂 适合新手)】3.运行结果图
scrapy爬虫简单案例(简单易懂|scrapy爬虫简单案例(简单易懂 适合新手)
文章图片

到此一个简单的scrapy爬取项目就完成啦!

    推荐阅读