gpt4 book ai didi

python - 如何用字符串替换 beautifulsoup 中的空标签?

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:56 25 4
gpt4 key购买 nike

我编写这段代码是为了从网站上抓取一些结果。但是,在抓取之后,我的 CSV 文件中的一些标签显示为空。如何添加条件以用包含消息的字符串替换空标签?

这是我的最终 CSV 文件的片段:

每|eng

湖|254

乐队|

雷森|541

新闻|5412

分数|225

国家|

案例|474......

我想在循环中添加一些条件,以便如果任何一个对象(per 或 eng)遇到空标记,则条件会将它们替换为“无数字”字符串,这使我的最终结果如下所示:

每|eng

湖|254

带|无编号

雷森|541

新闻|5412

分数|225

国家|没有编号

案例|474......

我做了一些搜索,发现我应该在循环中添加一个条件,例如:

if per or eng == None:
replace.(per and eng).replace("no number")
else

........


records = []
for pg in range(1, 25 + 1):
r = requests.get('url'+str(pg))
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('a', attrs={'itemprop':'url'})
for result in results:
per = result.find('strong').text.strip()
eng = result.find('span').text.strip()

records.append((per, eng))
#sleep(randint(1, 4))

df = pd.DataFrame(records, columns=['per', 'eng'])
df.to_csv('finaledata.csv', index=False, encoding='utf-8', sep='|')

最佳答案

不要替换 DOM 中的任何内容,而是在存储到文件之前更改它,请参阅下面的代码

records = []
for pg in range(1, 25 + 1):
r = requests.get('url'+str(pg))
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('a', attrs={'itemprop':'url'})
for result in results:
per = result.find('strong').text.strip()
if per=="":
per="no number"
eng = result.find('span').text.strip()
if eng=="":
eng="no number"

records.append((per, eng))
#sleep(randint(1, 4))

df = pd.DataFrame(records, columns=['per', 'eng'])
df.to_csv('finaledata.csv', index=False, encoding='utf-8', sep='|')

关于python - 如何用字符串替换 beautifulsoup 中的空标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58041221/

25 4 0