当前位置: 首页 > news >正文

爬虫案例4: parsel 模块的运用

目标页面: https://www.shanghairanking.cn/rankings/bcur/2023
打印在终端
import requests
import json
from urllib.parse import urljoin
from parsel import Selectorurl = 'https://www.shanghairanking.cn/rankings/bcur/2023'headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}data = []def parse():resp = requests.get(url=url, headers=headers)resp.encoding = 'utf8' if resp.status_code == 200:html_data = resp.textselector = Selector(text=html_data)scool_list = selector.xpath('//*[@id="content-box"]/div[2]/table/tbody/tr').getall()for itemn in scool_list:scool = Selector(text=itemn) # 这里item是字符串的htmldata.append({'排名': scool.xpath('.//td[1]//text()').get().strip(),'校名': scool.css('.name-cn::text').get().strip(),'详情': urljoin(url, scool.css('a::attr(href)').get().strip()),'城市': scool.xpath('.//td[3]/text()').get().strip(),'评分': scool.xpath('.//td[5]/text()').get().strip()}) print(json.dumps(data, indent=4, ensure_ascii=False))else:print('状态码不为200: ', resp.text)if __name__ == '__main__':parse()

在这里插入图片描述

目标页面: https://movie.douban.com/top250
打印终端
import requests
import json
from urllib.parse import urljoin
from parsel import Selectorurl = 'https://movie.douban.com/top250?'headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36'
}data = []def parse():resp = requests.get(url, headers=headers)if resp.status_code == 200:html_data = resp.textselector = Selector(text=html_data)move_html_list = selector.css('#content > div > div.article > ol > li').getall()for item in move_html_list:move = Selector(text=item)data.append({'排名': move.xpath('.//em/text()').get().strip(),'电影名称': move.css('div > div.info > div.hd > a > span:nth-child(1)::text').get().strip(),'评分': move.css('div > div.info > div.bd > div > span.rating_num::text').get().strip(),'详情链接': move.css('div > div.pic > a::attr(href)').get().strip(),'图片链接': move.css('div > div.pic > a > img::attr(src)').get().strip()})print(json.dumps(data, indent=4, ensure_ascii=False))else:print('状态码不为200', resp.text)if __name__ == '__main__':parse()

在这里插入图片描述

http://www.lryc.cn/news/316678.html

相关文章:

  • 数据结构·复杂度
  • 数学建模理论与实践国防科大版
  • Yakit爆破模块应用
  • 【3GPP】【核心网】【5G】NAS连接管理和UE注册管理状态(超详细)
  • 细粒度IP定位参文2(Corr-SLG):A street-level IP geolocation method (2021年)
  • Mac上使用M1或M2芯片的设备安装Node.js时遇到一些问题,比如卡顿或性能问题
  • 学习vue3第四节(ref以及ref相关api)
  • 关于电脑无法开启5G频段热点的解决方案
  • 清理磁盘空间 - Win系统
  • 科技革新的引擎-2024年AI辅助研发趋势
  • 【PTA】L1-021 L1-022 L1-023 L1-024 L1-025(C)第四天
  • Stable Diffusion 如何写好提示词(Prompt)
  • 树莓派Py程序加入开机自启
  • Java EasyExcel注解详解和实战案例
  • AHU 汇编 实验二
  • Spring Boot单元测试与热部署简析
  • 3.12练习题解
  • Java中实现双向链表
  • 【DevOps实战之k8s】使用Prometheus和Grafana监控K8S集群
  • 【读论文】【精读】3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • JVM理解学习
  • 使用 Ruby 或 Python 在文件中查找
  • python实现冒泡排序
  • 大数据开发(HBase面试真题-卷二)
  • 基于springboot+vue的线上教育系统(源码+论文)
  • 01-shell的自学课-基础变量学习
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Span)
  • 前端框架的演进之路:从静态网页到现代交互体验的探索
  • 在Linux/Ubuntu/Debian中设置字体
  • Python 常用内置函数,及实例演示