我从网站animeka网站抓取所有网页的数据框:
import pandas as pd
import requests
from bs4 import BeautifulSoup
for page_no in range(1, 467):
url = 'http://www.animeka.com/animes/~_{}.html'.format(page_no)
titles, studios, genres, durations = [], [], [], []
for page_no in range(1, 467):
url = 'http://www.animeka.com/animes/~_{}.html'.format(page_no)
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
for table in soup.find_all('table', class_='animesindex'):
td = table.find_all('td', class_='animestxt')
titles.append(td[1].text.split(':')[1])
studios.append(td[3].text.split(':')[1])
genres.append(td[4].text.split(':')[1])
durations.append(td[6].text.split(':')[1])
headers = ['Title', 'Studio', 'Genres', 'Duration']
df = pd.DataFrame(dict(zip(headers, [titles, studios, genres, durations])))
df = pd.DataFrame({'duration':df["Duration"], "genre" : df["Genres"], 'studio':df["Studio"], "titre" : df["Title"]})
我想获得他们为每个动画添加的user_id和评级,但这是“详细”小节中的图片,我不知道如何收集这些信息。
这是一个图片代码,评级为:
<img src="/animes/13498.png" width="400" height="100" alt="graph">
您可以使用find_previous
方法查找文档中特定标记之前的标记和字符串。
td[1].find_previous('td')
所以,如果你想提取图像的名称,你可以试试这个:
td[1].find_previous('td').img['src'].split('/')[-1]