首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >美丽的汤Web抓取Python

美丽的汤Web抓取Python
EN

Stack Overflow用户
提问于 2021-01-13 14:18:15
回答 1查看 116关注 0票数 0

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

[

这是我的python脚本:

代码语言:javascript
运行
复制
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()

当我运行它时,它返回空值。我猜我没有调用正确的标签,但是找不到哪里错了。

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 14:36:13

我在html中看不到任何叫做"productname“的东西。所以也许soup.find_all(productname)会返回一个空列表。

顺便说一句:for循环不是嵌套的,所以第二个循环在第一个循环结束后开始,并且只搜索最后一个url。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65696632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档