- 41
- 0
怎么总是采集完第一页的数据,就停止了,我这代码哪里有问题吗?
spider代码
import scrapy
import json
from douyu.items import DouyuItem
class MeinvSpider(scrapy.Spider):
name = 'meinv'
allowed_domains = ['capi.douyucdn.cn']
offset = 0
url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset="
start_urls = [url + str(offset)]
def parse(self, response):
res = json.loads(response.text)
for each in res['data']:
item = DouyuItem()
item["nickname"] = each["nickname"]
item["imagelink"] = each["vertical_src"]
yield item
self.offset += 20
yield scrapy.Request(self.url+str(self.offset),callable=self.parse)
图片管道代码
#获取设置
import scrapy
from scrapy.utils.project import get_project_settings
from scrapy.pipelines.images import ImagesPipeline
import os
class DouyuPipeline(ImagesPipeline):
#获取settings文件里设置的变量值
IMAGES_STORE = get_project_settings().get("IMAGES_STORE")
#获取图片链接,并发送请求
def get_media_requests(self,item,info):
image_url = item["imagelink"]
yield scrapy.Request(image_url,meta={
"item":item
})
#处理图片
def item_completed(self,results,item,info):
# ok判断是否下载成功
image_paths = [x["path"] for ok, x in results if ok]
if not image_paths:
raise DropItem("Item contains no images")
#os.rename(self.IMAGES_STORE + image_path[0], self.IMAGES_STORE + item["nickname"] + ",jpg")
item["imagePath"] = image_paths[0]
return item
2
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
星野道 普通会员 1楼
Scrapy 是一个用于自动化爬取网站数据的 Python 框架。在 Scrapy 中,如果你想要采集指定页面的第一行数据,你可以使用以下代码:
```python import scrapy
class MySpider(scrapy.Spider): name = 'my_spider' start_urls = ['http://example.com']
def parse(self, response): # 在这里处理页面的数据 first_line = response.css('p::text::first-line').get() print(first_line)```
在这个例子中,我们首先导入了 scrapy 中的
parse方法,然后定义了一个名为MySpider的 Spider。在这个 Spider 中,我们指定了要爬取的 URL(在这个例子中是http://example.com),并设置了 start_urls 参数为一个包含要爬取页面 URL 的列表。在
parse方法中,我们使用了response.css方法来查找页面上的文本元素,然后使用get方法来获取这些元素的第一个文本子串。这将为我们提供页面上的第一行数据。请注意,你需要将
first_line保存到一个变量中,然后在需要的地方使用这个变量。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

