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
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爬取项目就完成啦!
推荐阅读
- 简单响应式的实现(1)
- servlet|servlet tomcat mysql_Jsp+Servlet+Tomcat+Mysql+JDBC+MVC模式 简单实用范例
- C#|C#中Messagebox的简单使用
- python|python爬虫学习25
- vue|vue H5 超简单的swiper制作抖音上拉切换视频播放
- 爬虫|python3 qq音乐爬取歌手名字,专辑,歌曲时间,播放链接
- python爬虫大作业|python爬虫大作业、爬取一位歌手的所有歌曲_python爬取一位歌星的歌单
- pythonqq音乐爬虫_手把手教你使用Python抓取QQ音乐数据(第二弹)
- Python中的tkinter库简单案例详解
- swift实现简单的计算器