关于python中利用xlwt导入数据只导入了最后一行的数据问题,如何修改才能将所有数据全部导入
from lxml import etree
import urllib.request
import urllib.parse
import xlwt
#设置伪装
headers = {
'cookie': '__jdu=1659707167623619949466; shshshfpa=635b8588-3158-6dba-0b99-25afccd7b2e3-1659707167; shshshfpb=y8RaBS369LS9tHP_B6U2LiA; PCSYCityID=CN_440000_440100_0; areaId=19; qrsc=3; ipLoc-djd=19-1601-50258-51885; unpl=JF8EAMZnNSttURhTBkkAHBRATghXWw0AHkdTPWRRBgheH1ICGAUZGxR7XlVdXhRKHh9tZhRUWFNKXA4YBCsSEXteXVdZDEsWC2tXVgQFDQ8VXURJQlZAFDNVCV9dSRZRZjJWBFtdT1xWSAYYRRMfDlAKDlhCR1FpMjVkXlh7VAQrAhwWGE1cUl5aDkwUAWhnDVxYUE5TAisyHCIge11VWloAQicCX2Y1FgkES1ABEwpWEhdPVVJfWwhMEQRsZQJUVVBOXAAcBSsTIEg; __jdv=76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_8b62c367a4d24a9daac2ecd7e7626385|1661839773375; jsavif=1; jsavif=1; __jda=122270672.1659707167623619949466.1659707168.1661783094.1661839773.3; __jdc=122270672; shshshfp=59b9a797b38077f20c6ccaefb49f4f92; rkv=1.0; avif=1; token=748fe6e6ed71a665abcd062250fad92b,2,923244; __tk=NAzeNDN4qfyDrAq3OLNBqIq4riaDOfhhsUaBsUaCrDOgqAzgNfaAN2,2,923244; shshshsID=d0e7aa327015c38aece2a1b82528443a_4_1661839861500; __jdb=122270672.4.1659707167623619949466|3.1661839773; ip_cityCode=1601; 3AB9D23F7A4B3C9B=XDBZMMYDB4ERE2MUBE335IL56JCNTMRL2JKTAU5NYFYOIWUYNRJ33J3B6T2IM2NPO5I4LQ54ALNBTWJ4I3HADDMRF4',
'referer': 'https://www.jd.com/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.5261 SLBChan/105'
}
url='https://search.jd.com/Search?keyword=%E6%98%BE%E5%8D%A1&enc=utf-8&wq=%E6%98%BE%E5%8D%A1&pvid=bca0c187461e419ab9caf4bbb8002a19'
#获取网页源码
get = urllib.request.Request(url=url, headers=headers)
back = urllib.request.urlopen(get)
html = back.read().decode("utf-8")#转为utf-8形式
selector = etree.HTML(html)#解析html生成信息树
datalist = []
for i in range(0,30):
data = []
t = str(i+1)
# 名称
name1 = "/html/body/div[5]/div[2]/div[2]/div[1]/div/div[2]/ul/li["
name2 = "]/div/div[3]/a/em/text()"
name3 = name1 + t + name2
name = selector.xpath(name3)
data.append(name)
print(name)
#价格
price1 = "/html/body/div[5]/div[2]/div[2]/div[1]/div/div[2]/ul/li["
price2 = "]/div/div[2]/strong/i/text()"
price3 = price1 + t + price2
price = selector.xpath(price3)
data.append(price)
print(price)
work = xlwt.Workbook(encoding='utf-8', style_compression=0)
sheet = work.add_sheet("显卡信息表", cell_overwrite_ok=True)
top = ('name', 'price')
for i in range(len(top)):
sheet.write(0, i, top[i])
datalist = (name, price)
count = 0
count += 1
for i in range(len(datalist)):
sheet.write(count, i, datalist[i])
savepath = './爬取.xls'
work.save(savepath)
只导入最后一行是因为前面导入的数据都被后面导入的数据覆盖了