鱼C论坛

 找回密码
 立即注册
查看: 494|回复: 1

[已解决]Python爬虫07(朋友实训项目)

[复制链接]
发表于 2024-1-3 18:59:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 liyifeng295641 于 2024-1-3 19:01 编辑

在豆瓣音乐标签: 流行里面爬取标题,表演者,发行时间,链接

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import xlwt
  4. url = "https://music.douban.com/tag/%E6%B5%81%E8%A1%8C?start=260&type=T"
  5. headers = {'User-Agent':
  6. 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36','Cookie':
  7. 'll="118254"; bid=hUyLZc0IQ-0; __utmc=30149280; __utmz=30149280.1704177535.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _pk_id.100001.afe6=e3aa424645194a40.1704178112.; __yadk_uid=vQ2OnDmCyRJ7MgONjIYqxroh3kmJOC0n; _vwo_uuid_v2=DC4889CAE9BF69AB947F1C739A359D3B1|c7a477b87f67bc643d65031d1e233036; dbcl2="276885079:IyaMMU84wwk"; ck=y-tF; push_noty_num=0; push_doumail_num=0; __utmv=30149280.27688; ap_v=0,6.0; _pk_ref.100001.afe6=%5B%22%22%2C%22%22%2C1704181059%2C%22https%3A%2F%2Fwww.douban.com%2F%22%5D; _pk_ses.100001.afe6=1; __utma=30149280.678212503.1704177535.1704177535.1704181060.2; __utmt=1;__utmb=30149280.3.9.1704181060'}
  8. r=requests.get(url,headers=headers)
  9. content=r.content.decode('utf-8')
  10. with open('douban.html','wb')as file:
  11.     file.write(r.content)
  12. title_list=[]
  13. href_list=[]
  14. for i in range(0,400,20):
  15.     url = 'https://music.douban.com/tag/%E6%B5%81%E8%A1%8C?start={i}&type=T'
  16.     soup=BeautifulSoup(content,'lxml')
  17.     divs=soup.find_all('div',class_="pl2")
  18.     for div in divs:
  19.         href=div.find('a')['href']
  20.         href_list.append(href)
  21.         title=div.find('a').text
  22.         title_list.append(title)


  23. print(href_list)
  24. print(title_list)
  25. wb=xlwt.Workbook()
  26. sheet1=wb.add_sheet('豆瓣音乐')
  27. sheet1.write(0,0,'标题')
  28. sheet1.write(0,1,'链接')

  29. for row in range(1,len(title_list)+1,1):
  30.     sheet1.write(row,0,title_list[row-1])
  31.     sheet1.write(row,1,href_list[row-1])

  32. wb.save(r'C:\Users\admin1\Desktop\34qc.xls')
  33. [font=宋体][size=4][size=5][/size][/size][/font]
复制代码
最佳答案
2024-1-3 19:03:26
好的,让我们来编写一个简单的爬虫来实现这个任务。

首先,我们需要使用Python的requests库和BeautifulSoup库。如果你还没有安装这两个库,可以通过以下命令进行安装:

  1. pip install requests beautifulsoup4
复制代码


接下来,我们编写代码:

  1. import requests
  2. from bs4 import BeautifulSoup

  3. # 发起HTTP请求
  4. url = 'https://music.douban.com/tag/流行'
  5. response = requests.get(url)

  6. # 解析HTML内容
  7. soup = BeautifulSoup(response.text, 'html.parser')

  8. # 找到所有class为 'title' 的元素
  9. titles = soup.find_all(class_='title')

  10. # 遍历每个标题元素,获取标题、表演者、发行时间和链接
  11. for title in titles:
  12.     # 获取标题
  13.     title_text = title.a.text.strip()
  14.    
  15.     # 获取表演者
  16.     performer = title.find(class_='artist').text.strip()
  17.    
  18.     # 获取发行时间
  19.     time = title.find(class_='time').text.strip()
  20.    
  21.     # 获取链接
  22.     link = title.a['href']
  23.    
  24.     # 输出结果
  25.     print('标题:', title_text)
  26.     print('表演者:', performer)
  27.     print('发行时间:', time)
  28.     print('链接:', link)
  29.     print('---')
复制代码


上面的代码中,我们首先使用requests库发送HTTP请求,并将返回的内容传递给BeautifulSoup库进行解析。然后,我们使用find_all方法找到所有class为'title'的元素。接着,我们遍历这些元素,分别获取标题、表演者、发行时间和链接,并打印输出。

运行上面的代码,你将会看到豆瓣音乐标签中流行类别下的标题、表演者、发行时间和链接的信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-3 19:03:26 | 显示全部楼层    本楼为最佳答案   
好的,让我们来编写一个简单的爬虫来实现这个任务。

首先,我们需要使用Python的requests库和BeautifulSoup库。如果你还没有安装这两个库,可以通过以下命令进行安装:

  1. pip install requests beautifulsoup4
复制代码


接下来,我们编写代码:

  1. import requests
  2. from bs4 import BeautifulSoup

  3. # 发起HTTP请求
  4. url = 'https://music.douban.com/tag/流行'
  5. response = requests.get(url)

  6. # 解析HTML内容
  7. soup = BeautifulSoup(response.text, 'html.parser')

  8. # 找到所有class为 'title' 的元素
  9. titles = soup.find_all(class_='title')

  10. # 遍历每个标题元素,获取标题、表演者、发行时间和链接
  11. for title in titles:
  12.     # 获取标题
  13.     title_text = title.a.text.strip()
  14.    
  15.     # 获取表演者
  16.     performer = title.find(class_='artist').text.strip()
  17.    
  18.     # 获取发行时间
  19.     time = title.find(class_='time').text.strip()
  20.    
  21.     # 获取链接
  22.     link = title.a['href']
  23.    
  24.     # 输出结果
  25.     print('标题:', title_text)
  26.     print('表演者:', performer)
  27.     print('发行时间:', time)
  28.     print('链接:', link)
  29.     print('---')
复制代码


上面的代码中,我们首先使用requests库发送HTTP请求,并将返回的内容传递给BeautifulSoup库进行解析。然后,我们使用find_all方法找到所有class为'title'的元素。接着,我们遍历这些元素,分别获取标题、表演者、发行时间和链接,并打印输出。

运行上面的代码,你将会看到豆瓣音乐标签中流行类别下的标题、表演者、发行时间和链接的信息。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 01:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表