我正在使用beautifulsoup在一个购物平台上自动发布产品,不幸的是他们的API目前被禁用,所以现在唯一的选择是使用beautifulsoup。
- 计划预期如何运作?**
程序预计将读取. csv文件(我提供文件名)并将产品数据存储在变量中-之后,它将经历多个步骤(填写表单)-如输入从变量中获得的名称,例如:
ime_artikla = driver.find_element(By.ID, 'kategorija_sug').send_keys(csvName) #Here it inputs the name
其中,csvName
是传递给函数的值以及一些其他参数:
def postAutomation(csvName, csvPrice, csvproductDescription):
我正在读取文件的方式如下:
filename = open(naziv_fajla, 'r', encoding="utf-8") #File name to open + utf-8 encoding was necess.
file = csv.DictReader(filename)
以上代码行位于try:
语句中。
我从csv文件中读取列的方式如下:
for col in file:
print("Reading column with following SKU: " + color.GREEN + color.BOLD + (col['SKU']) + color.END + "\n")
csvSKU = (col['SKU'])
csvName = (col['Name'])
#csvCategory = (col['Categories'])
csvPrice = (col['Price'])
csvproductDescription = (col['Description'])
print(csvName)
#print(csvCategory)
print(csvPrice)
print(csvproductDescription)
postAutomation(csvName, csvPrice, csvproductDescription)
i+=1
counterOfProducts = counterOfProducts + 1
- 在产品说明出现HTML和/或内联css之前,这一切都按预期运行(产品已成功发布到在线商店)**
- 问题:**
正如我所说的,当我有包含html的列时,问题就发生了。
当我填充产品描述字段(工具〉源代码)时,该站点使用 * tinymce * 编辑文本并放置描述等...
实际上,有两种情况正在发生,程序的行为与预期不符:
1.案例:
在第一种情况下,产品成功发布,但是由于某种原因,<li>
和\n
未被视为HTML,下面是一个产品描述的示例(出现此问题的地方):
<p style="text-align: center;">Some product description.\n<ul>\n <li>Product feature 1</li>\n <li>Prod Feature 2</li>\n<li>Prod Feature 3</li>\n<li>Prod Feature 3</li>\n<li>Prod feature 4</li>\n</ul>
当我提交此代码时,我会得到什么:
- \n\n产品功能1\n产品功能2\n产品功能3\n产品功能3\n产品功能4\n *
1.案例:
在第二种情况下会发生什么,是程序崩溃。会发生什么如下:
不知何故,从csv文件中提取的产品描述混淆了(我认为是由于复杂的html)程序-产品描述的一部分进入了价格 ...
字段,〈---这完全在下一页(你必须点击下一页到产品描述所在页面的末尾),然后输入价格,这对我来说很奇怪。
werid的特点是我有产品描述的模板(HTML和CSS),我将其保存到字符串文字中,作为template1 = """" A LOT OF HTML AND INLINE CSS """
和end_of_template = """ A LOT OF HTML AND INLINE CSS """
,这样做后,它会得到完美的渲染:
final_description = template1 + csvproductDescription + end_of_template
但是csvproductDescription变量内部的html和内联css不会被视为HTML和CSS。
我该如何解决这个问题?
1条答案
按热度按时间olqngx591#
看起来问题是我在产品说明中有空格,所以我这样解决了它: