仄言· 2023-06-21 17:18 采纳率: 0%
浏览 18

怎么爬取一个网页某个div 的class里的所有链接

使用 Python 的 requests 和 BeautifulSoup 库进行操作,怎么爬取一个网页某个div 的class里的所有链接?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-21 20:31
    关注
    • 建议你看下这篇博客👉 :python中用requests库和BeautifulSoup库爬的大学排名
    • 除此之外, 这篇博客: Python下基于requests及BeautifulSoup构建网络爬虫中的 案例 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 假设我要http://maoyan.com/board/4猫眼电影的top100电影的相关信息,如下截图:
      这里写图片描述

      获取电影的标题及url。

    • 您还可以看一下 郭宏志老师的Python爬虫实战(Requests+BeautifulSoup版)课程中的 课程简介小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      我可以根据参考资料中的代码,结合问题中给出的具体信息来解决问题。假设要爬取的网页URL为'https://example.com',要抓取的div元素的class为'link-div',需要抓取所有链接的绝对链接。

      1. 首先导入需要用到的库:
      import requests
      from bs4 import BeautifulSoup
      
      1. 定义一个函数get_links(),用来获取所有链接
      def get_links(url):
          response = requests.get(url)
          soup = BeautifulSoup(response.content, 'html.parser')
          divs = soup.find_all('div', {'class': 'link-div'})
          links = []
          for div in divs:
              for a in div.find_all('a'):
                  link = a.get('href')
                  if link.startswith('http'):
                      links.append(link)
                  else:
                      links.append(url+link)
          return links
      

      这个函数首先发送GET请求获取网页内容,然后使用BeautifulSoup解析网页内容。接着查找所有class为'link-div'的div元素,再在这些div元素中查找所有a标签,最后将a标签中href属性开头为'http'的绝对链接和其他相对链接拼接成绝对链接后存储到列表中。

      1. 调用get_links()函数获取所有链接
      all_links = get_links('https://example.com')
      

      这样就可以获取到所有链接了,可以进一步处理或者直接输出。

      如果要进一步提取链接对应的页面内容,可以在for循环中使用requests.get()请求链接并用BeautifulSoup解析内容,然后进行相应的数据抓取和处理。

    评论

报告相同问题?

问题事件

  • 已采纳回答 6月21日
  • 创建了问题 6月21日