python - 通过 Looping Python 提取子页面链接
问题描述
通过 Looping Python 提取子页面链接
我只需要使用动态循环提取所有“A 类”股票页面底部的“下一个”链接。我是 python 新手,但在 VB 中编写了相同的代码并且运行良好。这段代码一定有语法错误,请耐心等待。
帮助将不胜感激。
import requests
from bs4 import BeautifulSoup
import pandas as pd
import re
sub_link=[]
sub_link_edit=[]
def convert(url):
if not url.startswith('http://'):
return 'http:' + url
return url
next_link = 'https://money.rediff.com/companies/groups/A'
while next_link:
page = requests.get(next_link)
soup = BeautifulSoup(page.content,,'html.parser')
pagination_container_company = soup.find_all("table", class_="pagination-
container-company")[0].text
sub_link = re.search('href="(.*)">Next',
pagination_container_company).group(1)
sub_link_edit.append(convert(sub_link))
next_link=convert(sub_link)
data_df = pd.DataFrame()
df = pd.DataFrame(
{
'Link': sub_link_edit
})
data_df = pd.concat([data_df, df], sort=False)
print(df.shape)
tot_sub=len(sub_link_edit)
print(tot_sub)
data_df.to_csv('results_1.csv')
解决方案
好的,我决定编辑我的答案。由于您想自动执行此操作,因此此代码将一个接一个地获取所有“下一个” URL,直到没有剩余 URL,然后它将它们保存到名为 .csv 的 CSV 文件urls.csv
中。
import requests
from bs4 import BeautifulSoup
csv_file = "page number,url\n"
url = "https://money.rediff.com/companies/groups/A"
urls = [url]
while True:
data = requests.get(url).text
soup = BeautifulSoup(data, 'html.parser')
table = soup.find_all(class_="pagination-container-company")[0]
row = table.find_all("a", text="Next")
if row:
url = "https:" + row[0]["href"]
urls.append(url)
else:
break
for index, url in enumerate(urls):
csv_file += f"{index},{url}\n"
with open("urls.csv", "w") as o:
o.write(csv_file)
================================
[旧答案] 你真的需要所有这些代码来提取下一页链接吗?每个页面的链接是页面https://money.rediff.com/companies/groups/A/<number>
编号<number>
的形式
推荐阅读
- excel - 隐藏取消隐藏特定工作表慢
- python - 如何在 python 中获取我系统支持的所有屏幕分辨率
- php - 页面 (.php) 停止加载包含文件
- html - 保持文本区域旁边的下拉菜单不起作用
- mysql - 如果我的数据库中有一个空值,则颤振列表视图会显示无效的争论
- excel - 自动向 2000-3000 人发送电子邮件(通过 Outlook 365)?
- php - Goutte Client如何存储和检索$crawler?
- xamarin.forms - 如何更改 Xamarin Forms 中导航的页面箭头?
- android - 如何在改造中将此 json 解析为 gson
- python - 尝试和除了返回值 Python