From 968768cc8cb24476e96b590bc11df2c11a3bf54f Mon Sep 17 00:00:00 2001 From: 100gle <569590461@qq.com> Date: Wed, 24 Aug 2022 16:02:17 +0800 Subject: [PATCH] =?UTF-8?q?hotfix(crawler):=20=E8=B0=83=E6=95=B4B=E7=AB=99?= =?UTF-8?q?=E4=B8=80=E4=BB=B6=E4=B8=89=E8=BF=9E=E6=95=B0=E6=8D=AECSS?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=99=A8=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/01/bilibili.py | 8 ++++---- .../bilibili_crawler/spiders/bilibili.py | 11 +++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/01/bilibili.py b/code/01/bilibili.py index b10e9be..60b4ea5 100644 --- a/code/01/bilibili.py +++ b/code/01/bilibili.py @@ -108,10 +108,10 @@ async def fetch_stats(bvid: str, asess) -> APIData: info["rank"] = has_rank.text.strip() try: - info["like"] = html.find(".ops .like", first=True).text.strip() - info["coin"] = html.find(".ops .coin", first=True).text.strip() - info["collect"] = html.find(".ops .collect", first=True).text.strip() - info["share"] = html.find(".ops .share", first=True).text.strip() + info["like"] = html.find(".toolbar-left .like", first=True).text.strip() + info["coin"] = html.find(".toolbar-left .coin", first=True).text.strip() + info["collect"] = html.find(".toolbar-left .collect", first=True).text.strip() + info["share"] = html.find(".toolbar-left .share", first=True).text.strip() except AttributeError: log.warning(f"cant' get stats from '{bvid}', use default.") return {k: "" for k in stats} diff --git a/projects/crawling/bilibili_crawler/bilibili_crawler/spiders/bilibili.py b/projects/crawling/bilibili_crawler/bilibili_crawler/spiders/bilibili.py index 0e1d223..5847150 100644 --- a/projects/crawling/bilibili_crawler/bilibili_crawler/spiders/bilibili.py +++ b/projects/crawling/bilibili_crawler/bilibili_crawler/spiders/bilibili.py @@ -49,15 +49,14 @@ class BilibiliSpider(scrapy.Spider): loader = DefaultLoader( item=VideoData(), response=response, selector=response.selector ) - loader.add_css("like", ".ops .like::text") - loader.add_css("coin", ".ops .coin::text") - loader.add_css("collect", ".ops .collect::text") - loader.add_css("share", ".ops .share::text") - loader.add_css("rank", ".video-data .rank::text") + loader.add_css("like", ".toolbar-left .like .info-text::text") + loader.add_css("coin", ".toolbar-left .coin .info-text::text") + loader.add_css("collect", ".toolbar-left .collect .info-text::text") + loader.add_css("share", ".toolbar-left .share .info-text::text") + loader.add_css("rank", ".video-data .honor-text::text") video_data = loader.load_item() data = dict(**api_data, **video_data) - yield data