python - 从带有列表的网站获取名称并不总是有效
问题描述
我有以下代码:
Linksml=["https://articulo.mercadolibre.cl/MLC-554702642-samsung-note-9-dual-sim-128gb-carcasas-y-caja-_JM",
"https://articulo.mercadolibre.cl/MLC-554718846-audifonos-hyperx-cloud-ps4-_JM",
"https://articulo.mercadolibre.cl/MLC-554753668-disco-duro-ssd-_JM",
"https://articulo.mercadolibre.cl/MLC-554695355-celuar-samsung-j6-duos-_JM"]
for x in range(len(Linksml)):
page=requests.get(Linksml[x])
soup=BeautifulSoup(page.content,'html.parser')
tags=soup.find('h1', class_='item-title__primary ')
print(tags)
它可以工作,但如果我运行 10 次,它会在 5 次显示产品 1 和 2 的名称,而在剩下的 5 次中,它会显示“无”。3个产品是随机的,一次执行产品1可以显示名称,两次之后可以显示“无”。3个产品都是这样,我不知道该怎么办了。请帮助我,奥林匹斯诸神。
解决方案
实际上,第一个链接与其他链接不同,因此我已将其从list
. 此代码适用于其他链接。尝试这个:
from bs4 import BeautifulSoup
from selenium import webdriver
import time
Linksml=["https://articulo.mercadolibre.cl/MLC-554718846-audifonos-hyperx-cloud-ps4-_JM",
"https://articulo.mercadolibre.cl/MLC-554753668-disco-duro-ssd-_JM",
"https://articulo.mercadolibre.cl/MLC-554695355-celuar-samsung-j6-duos-_JM"]
driver = webdriver.Chrome()
for x in range(len(Linksml)):
driver.get(Linksml[x])
time.sleep(3)
soup=BeautifulSoup(driver.page_source,'html.parser')
tags=soup.find('h1', class_= 'item-title__primary')
if tags: print(tags.text.strip())
driver.close()
输出:
Audifonos Hyperx Cloud Ps4
Disco Duro Ssd
Celuar Samsung J6+ Duos
推荐阅读
- python - RuntimeError: 无法对关闭的处理程序执行操作。Django 和颤振
- github - 新手 GitHub 问题。没有 ssh 问题;如何推送文件?
- python - “代理服务器拒绝连接”
- powershell - Powershell - Register-PSSessionConfiguration 然后连接
- loops - 我正在使用 jquery ajax 从输入字段中查找文本的 val
- mongodb - namedCache 到 Localcahce infinispan-config-12.1.xsd
- django - 通过WAN IP而不是域访问django
- python - 当形状未闭合时从二进制图像中检测圆形和椭圆
- wordpress - 从 wordpress 多站点中的用户仪表板中删除主站点链接
- directory - 使用 Embeddedfolderview 嵌入谷歌驱动器文件夹似乎不再起作用