从网页抓取视频(标题池和代理池旋转请求工作环境和异步I/O编程自动化站点)

优采云 发布时间: 2021-11-08 04:10

  从网页抓取视频(标题池和代理池旋转请求工作环境和异步I/O编程自动化站点)

  种类。

  在这里,您可以看到“歌词”类别收录艺术家姓名,而“div-share”类别收录歌曲名称。

  "I Cry" lyrics

Shayne Ward Lyrics

  因此,要从服务器获取页面,我们必须使用请求库通过其 URL 从 Internet 获取网页。

  # Importing Librabies

import requests

# Web Page you want to Scrap

url = 'https://www.azlyrics.com/lyrics/shayneward/icry.html'

response = requests.get(url)

# Printing the Status Code of received URL

print(response.status_code)

# The Status code will be 200 if Everything is ok.

  在上面的代码中,我们通过请求库请求URL,然后将结果保存在响应中。要运行该文件,您可以使用以下命令

  python3 print_lyrics.py

  现在要从响应中提取详细信息,我们必须使用 BeautifulSoup 库来解析 HTML 页面,它可以使用 Command BeautifulSoup (response.text,'html.parser') 命令从响应中获取 html 解析文本。解析网页的不同部分可能会有些混乱,但是通过练习,您可以轻松地从网页中获取所需的详细信息。

  # Importing Libraries

import requests

from bs4 import BeautifulSoup

url = 'https://www.azlyrics.com/lyrics/shayneward/icry.html'

response = requests.get(url) # Using Requests to get Webpage

html_soup = BeautifulSoup(response.text , 'html.parser') # Parsing the WebPage to get its HTML Content

# These are

singer = html_soup.find('div' , class_ = 'lyricsh').h2.text

song_name = html_soup.find('div' , class_ = 'col-xs-12 col-lg-8 text-center').find_all('div',class_= 'div-share')[1].text.split('"')[1]

lyrics = html_soup.find('div' , class_ = 'col-xs-12 col-lg-8 text-center').find_all('div')[5].text

print('Singer Name -> {}'.format(singer))

print('Song Name -> {}'.format(song_name))

print('Lyrics is -> {}'.format(lyrics))

  该文件的输出将是终端中的艺术家姓名、歌曲名称和歌词。

  保存回复

  为了将此输出保存到磁盘,我将使用 JSON 来转储数据,但您也可以使用 CSV 或文本。除非你打算丢弃和管理数以百万计的歌词数据集,否则使用 SQL 将数据保存到磁盘可能会产生致命的后果。只需要几首歌词,JSON 或 CSV 就可以很好地工作。完整的代码现在看起来像

  import requests

from bs4 import BeautifulSoup

import json

url = 'https://www.azlyrics.com/lyrics/shayneward/icry.html'

response = requests.get(url)

html_soup = BeautifulSoup(response.text , 'html.parser')

singer = html_soup.find('div' , class_ = 'lyricsh').h2.text

song_name = html_soup.find('div' , class_ = 'col-xs-12 col-lg-8 text-center').find_all('div',class_= 'div-share')[1].text.split('"')[1]

lyrics = html_soup.find('div' , class_ = 'col-xs-12 col-lg-8 text-center').find_all('div')[5].text

data = {}

data['singer'] = singer

data['song_name'] = song_name

data['lyrics'] = lyrics

with open('data.json', 'w') as outfile:

json.dump(data, outfile)

  这将在与歌手和歌词相同的目录中创建文件“data.json”。

  标题池和代理池轮换请求工作环境和异步 I/O 编程自动化站点抓取 API 访问在 Heroku 上托管我们的 Flask 服务器

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线