【发布时间】:2021-05-05 02:10:14
【问题描述】:
我正在使用以下代码从网页中抓取内容,最终目标是写入 CSV。在第一次迭代中,我让这部分工作,但现在我的数据格式不同,它以一种在我尝试在 excel 中查看数据时被破坏的方式写入数据。
如果我使用下面的代码,在 Excel 中查看时,“heading.text”数据会正确放入一个单元格中。其中“child.text”的内容被打包到一个单元格中,而不是根据逗号进行拆分。您会看到我已尝试清理“child.text”的内容,以查看这是否是我的问题。
如果我从“z”中删除“heading.text”并重试,它会以一种让 excel 每个单元格显示一个字母的方式写入。最后,我希望在 excel 中查看时,用逗号分隔的每个值都显示在一个单元格中,我相信我在构造“z”时或者在写行时做错了一些事情(很多事情?)。
任何指导将不胜感激。谢谢。
csvwriter = csv.writer(csvfile)
for heading in All_Heading:
driver.execute_script("return arguments[0].scrollIntoView(true);", heading)
print("------------- " + heading.text + " -------------")
ChildElement = heading.find_elements_by_xpath("./../div/div")
for child in ChildElement:
driver.execute_script("return arguments[0].scrollIntoView(true);", child)
#print(heading.text)
#print(child.text)
z = (heading.text, child.text)
print (z)
csvwriter.writerow(z)
当我打印“z”时,我得到以下信息:
('Flower', 'Afghani 3.5g Pre-Pack Details\nGREEN GOLD ORGANICS\nAfghani 3.5g Pre-Pack\nIndica\nTHC: 16.2%\n1/8 oz - \n$45.00')
当我使用在“\n”上拆分字符串的旧代码打印“z”时,我得到以下信息:
('Flower', "Cherry Limeade 3.5g Flower - BeWell Details', 'BE WELL', 'Cherry Limeade 3.5g Flower - BeWell', 'Hybrid', 'THC: 18.7 mg', '1/8 oz - ', '$56.67")
【问题讨论】:
-
为什么要将 child.text 分成几行?是否可以为其提供示例文本?
-
我在测试看看\n是否有问题,我将更新代码并添加它的打印内容作为示例。
标签: python selenium csv screen-scraping