python-3.x - 如何将两个url的标题存储在excel文件中
问题描述
import bs4
from bs4 import BeautifulSoup
from pandas.core.base import DataError
from pandas.core.frame import DataFrame
import requests
import pandas as pd
from fake_useragent import UserAgent
urls = ['https://www.digikala.com/search/category-mobile', 'https://www.digikala.com/search/category-tablet-ebook-reader']
user_agent = UserAgent()
for url in urls:
data = requests.get(url, headers={"user-agent": user_agent.chrome})
soup = bs4.BeautifulSoup(data.text, "html.parser")
title = soup.find_all("title")
bar_list = []
for b in title:
result = b.text.strip()
bar_list.append(result)
print(bar_list)
ex = pd.DataFrame({"title": bar_list,})
print(ex)
ex.to_excel('sasa.xlsx', index=False)
我想同时获取两个网址,但我的代码只给了我图片中显示的一个
感谢任何其他方法我是这些库的新手
解决方案
您for url in urls
确实在两个 url 上进行迭代,但是该ex.to_excel('sasa.xlsx', index=False)
行将'sasa.xlsx'
在第二个循环上覆盖。
我会推荐:
- 在第二个循环中更改文件名,或
- 将结果写入同一 excel 文件的不同工作表,如这里
推荐阅读
- c++ - 大括号初始化和复制初始化动态分配的对象之间的区别
- mongodb - 尝试按字母顺序排序时,mongodb排序功能不起作用
- pyspark - 将 Pyspark Dataframe 中的推断模式持久保存到 S3 上的文件
- javascript - 从javascript中的数组中过滤掉不重复的值
- version-control - XCode 12 裁剪分支名称
- javascript - Javascript loop through an array and return the object(s) that end a streak of values
- ios - 如何在 MLMultiarray 元素上应用 Sigmoid?
- python - 获取特定时间间隔的预定事件
- javascript - 如何将以下常规 JavaScript 代码转换为 VueJS?
- angular - 在 Angular 10 (with ivy) 库中使用 $localize