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)
这个网站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