想爬取SHEIN的女裙的图片、标题、价格与颜色,但总是报错

import requests
import bs4
import time
import random
import pandas as pd
import openpyxl
dress_info=[]
#获取所有 url
for i in range(1,10):
   url="https://www.shein.com/Clothing-c-2035.html?ici=www_tab01navbar04&scici=navbar_WomenHomePage~~tab01navbar04~~4~~webLink~~~~0&srctype=category&userpath=category%3ECLOTHING&child_cat_id=1727&page="+str(i)+""
headers = {
         "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
         }
print("开始爬取SHElN平台女装品类裙子第%s 页信息....." %(str(i)))
response = requests.get(url=url, headers=headers)

#生成 bs4 对象
bsoup=bs4.BeautifulSoup(response.text,'lxml')
dress_list=bsoup.find('li', class_="list-item")

#bs4 解析文件
for dress in dress_list:    
 photo = dress.find('a').img.jpg()
 titile = dress.find('div', class_='S-product-item__name').text.strip()
 price = dress.find('div', class_='S-product-item__price').text.strip()
 color = dress.find('section', class_='S-product-item__relatecolor-container').text.strip() 
 
 pd1= pd.DataFrame({'photo': photo, 'titile': titile, 'price': price, 'color': color}, index=[0])
 dress_info.append(pd1)
 second=random.randrange(3,5)
 time.sleep(second)
#数据集
dress_info2=pd.concat(house_info)
dress_info2.to_excel('house_info.xlsx',index=False)

想爬取https://www.shein.com/Clothing-c-2035.html?ici=www_tab01navbar04&scici=navbar_WomenHomePage~~tab01navbar04~~4~~webLink~~~~0&srctype=category&userpath=category%3ECLOTHING&child_cat_id=1727&page=1

这个网站1到10页的信息,一直在调试,但是总是会在某个地方有问题,请教下这段代码是哪里有问题?谢谢!

一般是页面没有全部被加载,然后程序已经被读取了。或者这个标签根本不存在。

import requests
import bs4
import time
import random
import pandas as pd
import openpyxl
dress_info=[]
#获取所有 url
for i in range(1,10):
   url="https://www.shein.com/Clothing-c-2035.html?ici=www_tab01navbar04&scici=navbar_WomenHomePage~~tab01navbar04~~4~~webLink~~~~0&srctype=category&userpath=category%3ECLOTHING&child_cat_id=1727&page="+str(i)+""
headers = {
         "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"
         }
print("开始爬取SHElN平台女装品类裙子第%s 页信息....." %(str(i)))
response = requests.get(url=url, headers=headers)
#生成 bs4 对象
bsoup=bs4.BeautifulSoup(response.text,'html.parser')
dress_list=bsoup.find('li', class_="list-item")
print(dress_list)
#bs4 解析文件
for dress in dress_list:    
 photo = dress.find('a').img.jpg()
 titile = dress.find('div', class_='S-product-item__name').text.strip()
 price = dress.find('div', class_='S-product-item__price').text.strip()
 color = dress.find('section', class_='S-product-item__relatecolor-container').text.strip() 
 
 pd1= pd.DataFrame({'photo': photo, 'titile': titile, 'price': price, 'color': color}, index=[0])
 dress_info.append(pd1)
 second=random.randrange(3,5)
 time.sleep(second)
#数据集
dress_info2=pd.concat(house_info)
dress_info2.to_excel('house_info.xlsx',index=False)

 你把lxml换成 html.parser

然后就发现你获取的页面的li标签压根不存在

 

我改了以后,但出现TypeError了,我在站里查询了下,但是没有看懂。请问这种该怎么改?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632