免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任。

爬取需求:通过百度搜索关键字:笑话,搜索结果的第一项就是【xiaohua.zol.com.cn】,锁定从该站上爬取最新的笑话信息,爬取前5页笑话标题、内容等信息;

爬取工具:chrome浏览器、pycharm

Python库:requests、BeautifulSoup

01

网站结构分析

通过输入url【xiaohua.zol.com.cn】,打开笑话大全网站,点击【最新笑话按钮】,打开最新笑话页面:

通过翻页按钮,找到每页对应的url链接信息:

https://xiaohua.zol.com.cn/new/1.html

https://xiaohua.zol.com.cn/new/2.html

https://xiaohua.zol.com.cn/new/3.html

通过在【查看全文】按钮上右键,选择【检查】,找到笑话详情url提取信息:

通过上述页面分析,【article-list】是列表,包括了所有的笑话信息【article-summary】,每个笑话信息里面,可以从【article-title】或者【article-commentbar articleCommentbar clearfix】拿到笑话详情页面url。

02

爬取笑话大全详情页URL

根据上面分析的网站结构,开始创建python工程并编写代码:

import requestsfrom bs4 import BeautifulSoup# 模拟浏览器请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'}xiao_hua_url = 'https://xiaohua.zol.com.cn/new/{}.html'def start_xiao_hua(pages):# 从第一页开始,爬取到指定页for page in range(1, pages):# 访问urlmain_html = requests.get(xiao_hua_url.format(page), headers=headers)o_soup = BeautifulSoup(main_html.text, 'html.parser')v_xiao_hua_list = o_soup.select('.article-summary')for v_xiao_hua_item in v_xiao_hua_list:# 通过标题获取笑话详情的urlv_xiao_hua_url = v_xiao_hua_item.select('.article-title a')[0]['href']print(v_xiao_hua_url)start_xiao_hua(5)

运行代码,结果如下:

已经拿到了笑话详情的url,但是为相对路径,需要拼接主url

v_xiao_hua_url = 'https://xiaohua.zol.com.cn' + v_xiao_hua_url

运行代码,结果如下:

笑话详情url爬取成功!

03

爬取笑话详情页标题

继续编写代码,打开详情页的url,在打开的详情页提取笑话的标题

def detial_page(url):# 访问详情页urldetial_html = requests.get(url, headers=headers)detial_soup = BeautifulSoup(detial_html.text, 'html.parser')

分析详情页,笑话标题定位信息为:article-title

编写代码解析标题:

v_title = detial_soup.select('.article-title')[0].textprint(v_title)

运行代码,结果如下:

笑话标题爬取成功!

04

爬取笑话详情页内容

分析笑话详情页的内容,内容信息的关键定位信息为:article-text

编写代码,提取笑话内容信息

v_content_list = detial_soup.select('.article-text p')
v_content = ''
for v_content_item in v_content_list:v_content = v_content + v_content_item.text
print(v_title, v_content)

运行代码,结果如下:

爬取笑话内容信息成功!

所有示例代码均可通过微信公众号回复关键字【pachong23】下载!

笑话大全爬虫实战笔记[xiaohua.zol.com.cn]相关推荐

  1. 京东商品爬虫实战笔记

    免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任. 爬取需求:爬取京东商城根据 ...

  2. python爬虫实战笔记---以轮子哥为起点Scrapy爬取知乎用户信息

    开发环境:python3.5+Scrapy+pycharm+mongodb 思路: 1.选定起始人:选定一个关注数量或粉丝数量多的大佬 2.获取粉丝和关注列表 3.获取列表用户信息 4.获取每位用户粉 ...

  3. 网易新闻爬虫实战笔记[news.163.com]

    免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任. 爬取需求:爬取网易新闻[n ...

  4. python爬虫实战笔记——爬取图书信息(利用selenium库+chromedriver.exe插件)

    准备: 1.插件chromedriver.exe 2.已经安装好谷歌浏览器Chrome 编写代码 from bs4 import BeautifulSoup from selenium import ...

  5. 笑话大全API 实战项目 开心一笑app

    这是一款以 MVP 架构开发的练习项目,使用了 retorfit2,okhttp3,glide,jackson,rxjava,photoview 等热门框架, 数据来自聚合数据. 截图展示 图片来源 ...

  6. python 爬手机号_Python爬虫实战笔记_2-2 爬取手机号

    练习两层工作流 第一步,获取目标url存入数据库(mongoconn.py ) 第二步,从数据库中读出url, 并从页面上提取目标信息(homework2_2.py ) 源代码 mongoconn.p ...

  7. scrapy 爬 zol 笑话大全

    文章目录 xlb.py settings.py pipelines.py items.py xlb.py import scrapy import re from test_spider.items ...

  8. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

  9. python代码大全p-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)

    WechatSogou[1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典.[1]: https://github ...

最新文章

  1. Spring Boot 中关于 %2e 的 Trick
  2. linux pread/pwrite
  3. [JZOJ5281]钦点题解--瞎搞+链表
  4. Chinaren,逐渐变为垃圾了。
  5. iOS: 属性声明strong和retain竟然不一样
  6. 趣文:追MM的各种算法
  7. python open函数_精选2个小例子,带你快速入门Python文件处理
  8. resultset需要关闭吗_Java程序员都需要懂的「反射」
  9. 光纤耦合角度_一种光纤准直器的耦合找光方法与流程
  10. Python编程——函数
  11. 老李分享:浏览器引擎的介绍
  12. 沧小海基于xilinx srio核的学习笔记之第四章 Xilinx SRIO的示例分析(一)
  13. tar 打包解压参数详解
  14. 浅谈大学公寓智能用电管理系统方案
  15. 路由器和交换机用什么线连接?
  16. 用户故事地图编写方法
  17. Python基础篇:你好,世界!
  18. Pascal游戏开发入门(二):渲染图片
  19. python:小鱼的航程
  20. 元祖python_python元祖和列表

热门文章

  1. iOS开发UI篇章之应用管理的九宫格坐标计算
  2. 要怎么做才能实现工厂智慧物流体系的建设
  3. BVR、RV、BV电线三者区别
  4. 【万字综述】NLP语言模型发展史
  5. 致我们终将逝去的大学生活
  6. 通过API执行AutoCAD命令来
  7. 天津Java培训机构,培训班出来的好就业吗?
  8. Docker-部署运行MySQL容器
  9. 智慧公安雪亮工程大数据平台系统
  10. 基于有限状态机实现敏感词替换(Java)