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

Python爬虫入门

爬虫需要用到HTTP 请求的库、HTML/XML 解析的库、用于处理动态内容的库等

如request,lxml

 首先通过get请求url,包括头信息和关键字

导入头文件

import requests

头信息是为了伪装成用户取访问该url

headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'}
r=requests.get('https://b.faloo.com/1473774_1.html',headers=headers)
# r.encoding='utf-8'

可以修改获得的内容的编码

使用 from lxml import etree 将获取的r解析成html格式

a=etree.HTML(r.text)

通过定位获取具体的块的信息

info=a.xpath('//div[contains(@class, "noveContent")]/p/text()');

.text()获得正文内容

完整案例

import requests
from lxml import etree
import osheaders={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36'}num=1
url='https://www.bibie.cc/html/1/1.html'
books_num=1cur_title=""while True:r=requests.get(url,headers=headers)# r.encoding='utf-8'a=etree.HTML(r.text)info=a.xpath('//div[contains(@id,"chaptercontent")]/text()')title=a.xpath('//title/text()')next_url=a.xpath('//a[contains(@id,"pb_next")]/@href')parts=title[0].split('-')real_title=parts[0]if real_title!=cur_title:cur_title=real_titleos.mkdir('C:\\Users\\Administrator\\Desktop\\小说\\'+cur_title)with open('C:\\Users\\Administrator\\Desktop\\小说\\'+cur_title+'\\'+'第'+str(num)+'章.txt','a',encoding='utf-8') as f:print(cur_title+' 第'+str(num)+'章\n')for i in info:if i[0]=='请收藏本站:https://www.bibie.cc。笔趣阁手机版:https://m.bibie.cc':breakprint(i)f.write(i+'\n')f.write('\n\n')num=num+1print(next_url)if next_url[0]=='/html/'+str(books_num)+'/':books_num=books_num+1num=1url ='https://www.bibie.cc/html/'+str(books_num)+'/'+str(num)+'.html'# print(r.text)

lxml中的xpath('//表示跟标签/表示跟标签下的标签[contains(@属性:"属性值")]')

http://www.xdnf.cn/news/14167.html

相关文章:

  • 使用veaury,在vue项目中运行react组件
  • 汉诺塔专题:P1760 通天之汉诺塔 题解 + Problem D: 汉诺塔 题解
  • AI写程序: 多线程网络扫描网段ip工具
  • STM32使用rand()生成随机数并显示波形
  • 【最后203篇系列】028 FastAPI的后台任务处理
  • JVM之经典垃圾回收器
  • C++数据结构与二叉树详解
  • Kubernetes》》k8s》》Namespace
  • ProfibusDP转ModbusRTU网关,流量计接入新方案!
  • React 中如何获取 DOM:用 useRef 操作非受控组件
  • 珈和科技:无人机技术赋能智慧农业,精准施肥与病虫害监控全面升级
  • Perf学习
  • 使用最新threejs复刻经典贪吃蛇游戏的3D版,附完整源码
  • Spring Boot配置文件优先级全解析:如何优雅覆盖默认配置?
  • 盲超分-双循环对比学习退化网络(蒸馏)
  • Cursor 生成java测试用例
  • k8s低版本1.15安装prometheus+grafana进行Spring boot数据采集
  • npx 的作用以及延伸知识(.bin目录,npm run xx 执行)
  • AI 推理框架详解,包含如COT、ReAct、LLM+P等的详细说明和分类整理,涵盖其原理、应用场景及对比分析
  • Linux 线程互斥
  • Power BI 中 EXCEPT() 函数的使用指南
  • 悟空CRM系统部署+迁移
  • Vue.directive自定义v-指令
  • 【AI部署】腾讯云GPU-常见故障—SadTalker的AI数字人视频—未来之窗超算中心 tb-lightly
  • JAVA中多线程的经典案例
  • 4.黑马学习笔记-SpringMVC(P43-P47)
  • 学习设计模式《一》——简单工厂
  • 算法驱动光场革命:SLM技术引领智能光学新时代
  • 用 NLP + Streamlit,把问卷变成能说话的反馈
  • 红宝书第五十一讲:Web Components:创造你自己的HTML标签