python - 使用此代码,我可以从第一个 url 获取作者和书名列表!如何使用beautifulsoup 抓取多个url 数据?
问题描述
import requests, bs4
import numpy as np
import requests
import pandas as pd
import requests
from bs4 import BeautifulSoup
from pandas import DataFrame
urls = ['http://www.gutenberg.org/ebooks/search/?
sort_order=title','http://www.gutenberg.org/ebooks/search/?sort_order=title&start_index=26']
for url in urls:
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
tb = soup.find_all('span', class_='cell content')
soup_books = soup.findAll("span",{"class":"title"}) #books
soup_authors= soup.findAll("span",{"class":"subtitle"}) #authors
article_title = []
article_author = []
soup_title= soup.findAll("span",{"class":"title"}) # books
soup_para= soup.findAll("span",{"class":"subtitle"}) #authors
for x in range(len(soup_para)):
article_title.append(soup_title[x].text.strip())
article_author.append(soup_para[x].text)
data = {'Article_Author':article_author, 'Article_Title':article_title}
df = DataFrame(data, columns = ['Article_Title','Article_Author'])
print(df)
len(df)
我需要从网站' http://www.gutenberg.org/ebooks/search/抓取数据?sort_order=title' 直到页面末尾我如何遍历页面以获取该部分中的所有作者和标题
解决方案
您的意思是在前 25 个结果之后,您想要导航到下一页并获取下一页的结果吗?您可以使用 beatufiulsoup 获取页面右下角“下一步”按钮的 URL:
next_url = soup.find('a', {'title': 'Go to the next page results.'})
然后使用新的 URL 再次运行您的代码。
推荐阅读
- java - Jetty ServletContextHandler setClassLoader 不适用于每个请求线程
- python - 从 /home/ubuntu 位置查找 python 模块/库时出错
- android - Web 视图在 ViewPager Android 中停止到 exoplayer 的控制器
- javafx - 随着时间的推移填充健康栏Javafx
- java - 休眠使用旧对象值进行绑定
- keras - 在指定的纪元数后提前停止 Keras
- python - 格式化数据框中的大量浮点数
- javascript - C# - 如果链接在 10 秒内未加载,则从电子邮件正文重定向
- react-native - 带有多个文本输入的 KeyboardAwareScrollView 额外高度
- php - 无法猜测 MIME 类型,因为没有可用的猜测器(您是否启用了 php_fileinfo 扩展?)