python爬虫学习4

  1. 学习xpath,使用lxml+xpath提取内容。
  2. 使用xpath提取丁香园论坛的回复内容。
  3. 丁香园直通点:http://www.dxy.cn/bbs/thread/626626#626626
  4. 参考资料:https://blog.csdn.net/naonao77/article/details/88129994

1.学习xpath

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。(官方教程:http://www.w3school.com.cn/xpath/index.asp


参考链接:用lxml解析HTML

2.使用xpath提取丁香园论坛的回复内容

import requests
from lxml import etree


def getItem():
    headers = {
        "Connection": "keep-alive",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0",
        "Accept": "text/html,application/xml;q=0.9,image/webp,*/*;q=0.8",
        "Accept-Encoding": "gzip,deflate,sdch",
        "Accept-Language": "zh-CN,zh;q=0.8"
    }
    url = 'http://www.dxy.cn/bbs/thread/626626#626626'
    request = requests.get(url, headers=headers)
    # response = urllib.request.urlopen(request).read().decode("utf-8")
    html = request.text
    tree = etree.HTML(html)
    user = tree.xpath('//div[@class="auth"]/a/text()')
    content = tree.xpath('//td[@class="postbody"]')
    # print(user)
    # print(content)
    # datas = []
    for i in range(0,len(user)):
        print(user[i].strip()+":"+content[i].xpath('string(.)').strip())


if __name__ == '__main__':
    getItem()

输出:
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 青山绵延青山 藏寨连着汉院 像割舍不了的亲情 藏汉儿女根连着根 一垛垛青稞 挨着 一廊廊小麦 劳作者佝偻着身影 是...
    凋零的尘香阅读 1,684评论 0 0
  • 我们很急,许多事物但凡不是我们想看到的形状,都会想要用双手去塑形和揉捏。 作为一个土生土长的上海人...
    阿阿阿Sam阅读 3,607评论 0 2
  • 跑十分钟走二十分钟,一节瑜伽课,出完汗全身轻松。晚上两碗汤一碗菜外加哈密瓜和李子,胖啊胖……
    蔡泊阅读 1,697评论 0 0
  • 下了这么久的雨,人都要发霉了,早早起床,洗被套晒被子,忙了一上午,下午闻着一床的太阳香,甜蜜入睡。晚上,早早吃过晚...
    朦胧雨烟阅读 3,073评论 1 1

友情链接更多精彩内容