爬取中关村产品报价网站

news/2024/12/2 10:20:15/
import requests
from bs4 import BeautifulSoup
import reimport sys
import csv
import time# 中关村在线报价网
url ="http://detail.zol.com.cn"# 已解锁功能
funList = ["server"]# cookie
cookie = "zolapp-float-qrcode-closed=1; ip_ck=58eG4vvzj7QuMDA3NTE0LjE1ODc2MTEyMDk%3D; __gads=ID=5a4b998771bfa249:T=1589598862:S=ALNI_Mb32C6_R60loyJB1QNenHhdmFxtNw; __utma=139727160.1786308364.1590110116.1590110116.1590110116.1; __utmz=139727160.1590110116.1.1.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; listSubcateId=31; realLocationId=115487; userFidLocationId=115487; Hm_lvt_ae5edc2bc4fc71370807f6187f0a2dd0=1593996619; z_pro_city=s_provice%3Dhebei%26s_city%3Dshijiazhuang; userProvinceId=8; userCityId=6; userCountyId=139; userLocationId=115487; Adshow=1; Hm_lpvt_ae5edc2bc4fc71370807f6187f0a2dd0=1593996634; z_day=ixgo20=1&rdetail=9; lv=1594014942; vn=8; visited_subcateProId=31-1178761; questionnaire_pv=1593993627"
cookie_dict = {i.split("=")[0]:i.split("=")[-1] for i in cookie.split("; ")}# UA
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36","Content-Type": "text/html; charset=GBK"
}# 详细信息URL
zolConLists = []# 详细信息字典
infoDicts = []# 请求方法
def RequestsZol(url):response=requests.get(url=url,headers=headers,cookies=cookie_dict)return response.text# 解析详细信息页面URL
def RequestsZolCon(response):soup = BeautifulSoup(response, "html.parser")a = soup.find_all("a","more")for soupAUrl in a:if re.findall(".*?更多参数.*?",str(soupAUrl)):zolConLists.append(str(soupAUrl).split('"')[3])# 爬取子页面信息
def Subpage(conList):print(conList)conUrl = url + conList# 每次请求间隔5s# time.sleep(5)response = RequestsZol(conUrl)soup = BeautifulSoup(response, "html.parser")# urlsubUrl = conUrl# 服务器名称name = soup.find("h3","goods-card__title").a.get_text()# 参考报价price = soup.find("div","goods-card__price").span.get_text()[1:]# 评分try:score = soup.find("span","score").get_text()except Exception as e:score = 0# 评分人数try:scoreNum = soup.find("a","j_praise").get_text().split("条")[0]except Exception as e:scoreNum = 0# 基础信息content = str(soup.find("ul","product-param-item pi-31 clearfix param-important"))contents = re.findall('.*?<p title="(.*?)">',content)try:# 产品类型productCategory = contents[0]# 产品结构productMix = contents[1]# CPU型号CPUModel = contents[2]# 标配CPU数量standardCPUQuantity = contents[3]# 内存类型memoryType = contents[4]# 内存容量memoryCapacity = contents[5]# 硬盘接口类型hardDiskInterfaceType = contents[6]# 标配硬盘容量standardHardDiskCapacity = contents[7]except Exception as e:# 产品类型productCategory = 0# 产品结构productMix = 0# CPU型号CPUModel = 0# 标配CPU数量standardCPUQuantity = 0# 内存类型memoryType = 0# 内存容量memoryCapacity = 0# 硬盘接口类型hardDiskInterfaceType = 0# 标配硬盘容量standardHardDiskCapacity = 0infoDict = {"url":subUrl,"服务器名称":name,"参考报价":price,"评分":score,"评分人数":scoreNum,"产品类型":productCategory,"产品结构":productMix,"CPU型号":CPUModel,"标配CPU数量":standardCPUQuantity,"内存类型":memoryType,"内存容量":memoryCapacity,"硬盘接口类型":hardDiskInterfaceType,"标配硬盘容量":standardHardDiskCapacity}infoDicts.append(infoDict)# 保存为csv文件
def ToCsv(infoDicts):print("开始写入")keys = []for key in infoDicts[0].keys():keys.append(key)filename = './country_a.csv'with open(filename, 'a', newline='',encoding='utf-8') as f:writer = csv.DictWriter(f, keys)writer.writeheader()for row in infoDicts:writer.writerow(row)# 爬取项信息确认方法
def InputStrJu(inputStr):if inputStr in funList:print("可以爬取")else:raise Exception('inputStr 还不是支持的功能。inputStr 的值为: {},目前只支持:{}'.format(inputStr,funList))# 爬取页面信息确认方法
def PageIntJu(pageInt):if pageInt > 0 and type(pageInt) == type(1):print("完成信息确认")else:raise Exception('pageInt必须是比0大的整数。pageInt 的值为: {}'.format(pageInt))if __name__ == "__main__":print('''目前只支持爬取服务器相关信息,请输入server''')try:inputStr = input ("想要爬取哪类信息:")InputStrJu(inputStr)pageInt = eval(input("想要爬取多少页(1页20条信息):"))PageIntJu(pageInt)for page in range(1,pageInt+1):conLists = []# 构建URLrequestsUrl = url + "/" + inputStr + "/" + str(page) + ".html" # 请求,间隔五秒# time.sleep(5)response = RequestsZol(requestsUrl)# 详细信息页URLRequestsZolCon(response)# 请求信息数据for zolConList in zolConLists:   Subpage(zolConList)ToCsv(infoDicts)except Exception as e:print(e)sys.exit(0)

在这里插入图片描述


http://www.ppmy.cn/news/112038.html

相关文章

Android 4.0平板,Android4.0.3系统_平板电脑_平板电脑评测-中关村在线

智器Ten3从一上市就采用了最新的Android4.0系统&#xff0c;随着时间的推移官方已经更新至了最新的Android4.0.3版本。在上一页笔者已经简要的介绍了一下系统升级的步骤&#xff0c;可以看出智器平板的升级操作还是非常简单的。 Ten3采用最新的Android4.0.3系统 谷歌最新的Andr…

android平板电脑卡槽在哪,外观|增加SIM卡槽_酷比魔方 IWORK8_平板电脑评测-中关村在线...

数据统计&#xff0c;8英寸手机平板是人类所能单手操作的范围&#xff0c;9.7英寸太大&#xff0c;7英寸平板与手机傻傻分不清&#xff0c;酷比魔方iwork8是一款8寸1280分辨率的win8安卓双系统平板&#xff0c;外观方面较之此前除增加一个SIM卡插槽外并未有太大变化。 酷比环保…

台式计算机配置参数,整机配置参数以及性能测试_台式电脑评测-中关村在线

我们首先来看一看同方E500的硬件配置情况。 根据AIDA64所示,同方E500搭载了i5-7400处理器、8GB内存、128GB建兴固态硬盘以及1TB西部数据机械硬盘。这个配置对于商务办公机来讲是非常合理的,在性能与成本之间得到了最佳的平衡。那么具体性能表现又是如何呢?我们来继续往下看。…

中关村修电脑记实:那些年,修电脑犯下的错!

上周末电脑坏了&#xff0c;本来没插电源&#xff0c;开机&#xff0c;挺好的&#xff0c;没什么毛病&#xff0c;然后想起来没插电源&#xff0c;插上电源&#xff0c;出去抽根烟&#xff0c;回来&#xff0c;电脑黑了&#xff0c;不知道怎么回事啊&#xff0c;长按电源没有卵…

跑步穿过中关村

1          我出来啦。敦煌张开嘴想大喊一声&#xff0c;一个旋风在他面前升起来&#xff0c;细密的沙尘冲进他的鼻子、眼睛和嘴&#xff0c;只好先打喷嚏&#xff0c;然后揉眼睛。小铁门在他身后咣关上了。他把嘴里的沙土吐出来&#xff0c;旋风已经跑远了。他歪着脑袋…

电脑清灰,你的电脑能有多脏 论清灰的重要性

最近难得清闲几日&#xff0c;突发奇想&#xff0c;决定给给许久没动过的电脑洗了个澡&#xff0c;当吹风机逼近机箱的的时候&#xff0c;我感觉我看到了沙尘暴&#xff0c;之后就没有然后了&#xff0c;差点被家里人认为是街头要饭的&#xff0c;脏的难以想象&#xff0c;不过…

电脑显卡驱动,怎么安装电脑显卡驱动?正确方法在这里!

显卡在我们电脑中是非常重要的一部分&#xff0c;但是有时候会由于某种原因然后我们的电脑显卡就报废了&#xff0c;这时候买新的显卡回来问题就来了&#xff0c;熬怎么装显卡驱动&#xff1f;因为我们都知道显卡必须要装显卡驱动才可以用的&#xff01;本文小编就给大家简单介…

学计算机专业需要买电脑吗高中,麻麻 上大学专业需要用 | 买笔记本电脑_笔记本新闻-中关村在线...

麻麻 上大学专业需要用 | 买笔记本电脑 大学对于高中学子来说是个值得向往的天堂&#xff0c;传说中那里不用写作业&#xff0c;上课可以吃东西&#xff0c;还可以睡觉&#xff0c;当然还可以谈恋爱。而真正经历了大学的同学&#xff0c;或许对这些都不在乎&#xff0c;他们更享…