爬虫实战

  • BeautifulSoup
  • 什么是 XPath?

今天的任物是通过requests + bs4 & lxml 这三个库来完成爬取丁香园论坛的回复内容首先我们说一下数据 这里的数据包含了 标题 楼主提问的问题内容 以及各楼层的回复内容(title author_say recovery) 这三个内容 bs4 以及lxml 的文档较为玩整这里就不多做赘述,有需要可以去查看文档 bs4 lxml 笔者这里较为常用的爬虫库是bs4,lxml多数用来读取较大的lxml

BeautifulSoup

from bs4 import BeautifulSoup
import requestsurl = 'http://www.dxy.cn/bbs/thread/626626#626626'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html,'lxml')
#print(soup.title)
for data in soup.find_all('tbody'):try:username = data.find('div',class_= 'auth').get_text(strip=True)content = data.find('td',class_='postbody').get_text(strip=True)print(username+':'+content)except:pass

什么是 XPath?

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。
下面列出了最有用的路径表达式:

Xpath中text(),string(),data()的区别如下:
text()仅仅返回所指元素的文本内容。
string()函数会得到所指元素的所有节点文本内容,这些文本讲会被拼接成一个字符串。
data()大多数时候,data()函数和string()函数通用,而且不建议经常使用data()函数,有数据表明,该函数会影响XPath的性能。

import requests
from lxml import etreeurl = 'http://www.dxy.cn/bbs/thread/626626#626626'
response = requests.get(url)
html = response.text
ree = etree.HTML(html)
username = ree.xpath('//div[@class="auth"]/a/text()')
#print(username)
content = ree.xpath('//td[@class="postbody"]')
result = []
for i in range(len(username)):result.append(username[i].strip()+':'+content[i].xpath('string(.)').strip())
print(result)

爬虫实战-用beautifulsoup提取丁香园论坛的回复内容相关推荐

  1. 爬虫学习2.2 使用xpath提取丁香园论坛的回复内容

    任务描述 学习xpath,使用lxml+xpath提取内容. 使用xpath提取丁香园论坛的回复内容. 丁香园直通点:http://www.dxy.cn/bbs/thread/626626#62662 ...

  2. 爬虫 -----beautifulsoup、Xpath、re (二)附爬取丁香园用户名以及回复内容

    目录 1.Xpath简介 1.1使用流程: 1.2Xpath常用的路径表达式 1.3 使用lxml解析 2 实战:爬取丁香园-用户名和回复内容 2.1 获取url的html 2.2 lxml解析htm ...

  3. Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价

    Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...

  4. 爬虫入门学习(八)模拟登录丁香园论坛爬取用户信息

    爬虫入门学习(八)实战大项目模拟登录丁香园爬取信息 1 目标 2 思路 3 主要的技术点 3.1 模拟登录 3.2 抓取用户个人主页 4 完整代码 5 项目后期拓展 1 目标 模拟登录丁香园,并抓取页 ...

  5. python爬虫(四)——模拟登录丁香园

    实战 实战小项目:模拟登录丁香园,抓取论坛页面人员基本信息与回复帖子.丁香园论坛:http://www.dxy.cn/bbs/thread/626626#626626 思路 首先把登陆方式由扫码切换为 ...

  6. 模拟登录丁香园获取全部回复

    采用selenium与xpath结合,先模拟登录再进行相关信息爬取,不过我不是仅仅把上次爬取丁香园的代码强加上去,我把取得源代码的自定义函数去掉,用了selenium的get函数,url用的是登陆后的 ...

  7. mirna富集分析_GEO芯片数据下载,矩阵提取,差异基因分析,差异miRNA分析,miRNA靶基因预测,GO、KEGG功能,蛋白互作网络构建 - 生物信息学讨论版 -丁香园论坛...

    一.芯片差异基因分析 1. 芯片数据收集 在 NCBI GEO数据库下载 . 2.做差异分析 使用limma R包计算正常组织和病组织的差异表达情况 3.绘制火山图 4.绘制热图 使用pheatmap ...

  8. 计算机考博复试基础知识,2017考博复试经验 - 考博 -丁香园论坛

    不知不觉,已经过去1年了,部分站友已经经历过了初试的洗涤,不管初试好坏,只要有丁点希望,复试也是要好好准备的,初试是敲门砖,复试是打开博士之门的钥匙.刚考完初试,都比较疲惫,如果还有后续考试,继续坚持 ...

  9. iol植入手术过程_完美!浙二眼科中心完成中国首例连续视程IOL植入术 - 眼科专业讨论版 -丁香园论坛...

    国际眼科时讯 2016年8月2日,浙江大学医学院附属第二医院眼科中心成功植入全国首例TECNIS Symfony®(新无级)连续视程-人工晶状体,由中华医学会眼科学分会候任主任委员.中华医学会眼科学分 ...

最新文章

  1. 清除应用程序所有缓存
  2. C++11 运行时变量类型判断
  3. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
  4. 暴力破解sshd服务的密码的小技巧
  5. nodejs的moment操作时间
  6. Harvest: A high-performance fundamental frequency estimator from speech signals
  7. 基于java springboot vue elementui购物商城源码(毕设)
  8. springboot发送短信验证码
  9. ftp 服务器管理工具,5款最好用的ftp 服务器管理工具
  10. java path类_Java PathParser类代码示例
  11. win激活时错误0xc0000022
  12. 总结numpy中的ndarray,非常齐全
  13. 应用每次打开重新启动_重新启动PC后如何阻止Windows 10重新打开以前的应用程序
  14. 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys
  15. java 中文转码_java 下载文件中文名称转码详解
  16. 吾生也有涯,吾知也无涯_乌拉(12)
  17. 制作基于springboot的简易学生管理系统(详细)
  18. 量子力学中狄拉克的符号在latex中的正确输法——讨论桌面宠物该怎么做
  19. IntelliJ IDEA 2020.3.2下载安装教程(公开版)
  20. linux 内核 mpath rr,linux – 对dm设备100%利用率的影响

热门文章

  1. 移动、ipad、PC端浏览器的判断
  2. 科普之Linux应用程序与内核程序交互的几种方式。
  3. 【webots教程】简单的避障机器人
  4. Java基础——反射.
  5. DPDK支持的Intel网卡
  6. 基于springboot的家装平台设计与实现
  7. 《中国经营报》对话肖枫:高质量发展十年 中国万亿软件产业再出发
  8. 公用计算机,让隐私高枕无忧 放心使用公用计算机(图)
  9. android看彩信自动退出,直接发送彩信?为什么很多安卓的应用都有权限,而我却不知道...
  10. 点对点网络与广播式网络的区别