【问题标题】:Beautiful Soup Web scraping Python漂亮的汤 网页抓取 Python
【发布时间】:2021-01-13 06:18:15
【问题描述】:

我在一个网站上有这个代码 Html:

[![![在此处输入图片描述][1]][1]

这是我的 python 脚本:

import csv 
import requests
from urllib.request import urlopen
from bs4 import BeautifulSoup

csv_file = open('C:\\Users\scrap_result.csv','w',newline='')


csv_writer = csv.writer(csv_file, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
csv_writer.writerow(['headline', 'price', 'img_src'])

for page in range (1,3):
    url = "https://test.vn/products?page=/{}/".format(page)
    html = urlopen(url)
    soup = BeautifulSoup(html,"lxml")
    
for productname in soup.find_all('productname'):
    headline = productname.h6.text
    
    price= productname.find('h6',class_='product-card__name').text
    img_src = productname.find('picture',class_='product-card__image mb-3 lozad').img['src']
    
    print(headline)
    print(price)
    print(img_src)
    csv_writer.writerow([headline, price, img_src])
csv_file.close()

当我运行它时,它返回空值。我想我没有调用正确的标签,但无法弄清楚什么是错的。

【问题讨论】:

    标签: python html web-scraping beautifulsoup


    【解决方案1】:

    我在 html 中看不到任何名为“产品名称”的内容。所以也许soup.find_all(productname) 返回一个空列表。

    顺便说一句:for循环没有嵌套,所以第二个循环在第一个循环完成后开始,只搜索最后一个url。

    【讨论】:

      猜你喜欢
      • 2022-01-08
      • 2022-01-20
      • 2021-11-12
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多