Python BeautifulSoup网页抓取中For循环的问题



我是Python&尝试通过BeautifulSoup网站抓取项目学习。

我正在寻找刮记录项目标题,项目的URL&此URL的购买日期&导出为CSV。

我在刮题方面取得了很大的进步;URL,但就是不知道如何在我的for循环中正确地编码购买日期信息(下面的purchase_date变量(。

当前发生的情况是csv文件中的购买日期数据(例如p_date title(只显示没有文本的空白单元格。。没有错误消息,只是没有数据被放入csv。非常感谢任何指导。

谢谢!!


import requests
from requests import get
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
headers = {"Accept-Language": "en-US, en;q=0.5"}
url = "https://www.popsike.com/php/quicksearch.php?searchtext=metal+-signed+-promo+-beatles+-zeppelin+-acetate+-test+-sinatra&sortord=aprice&pagenum=1&incldescr=1&sprice=100&eprice=&endfrom=2020&endthru=2020&bidsfrom=&bidsthru=&layout=&flabel=&fcatno="
results = requests.get(url, headers=headers)
soup = BeautifulSoup(results.text, "html.parser")

title = []
date = []
URL = []
record_div = soup.find_all('div', class_='col-md-7 add-desc-box')

for container in record_div:
description = container.a.text
title.append(description)
link = container.find('a')
URL.append(link.get('href'))
purchase_date = container.find('span',class_= 'info-row').text
date.append(purchase_date)

test_data = pd.DataFrame({
'record_description': title,
'link': URL,
'p_date': date
})
test_data['link'] = test_data['link'].str.replace('../','https://www.popsike.com/',1)

print(test_data)
test_data.to_csv('popaaron.csv')

我建议更改解析器类型:

soup = BeautifulSoup(results.text, "html5")

并修复购买日期的搜索表达式:

purchase_date = container.select('span.date > b')[0].text.strip(' tnr')

最新更新