近一年多来,半导体行业几乎是处于“寒风”状态,素有 " 半导体行业风向标 " 之称的存储芯片,在需求破灭与库存高企的多重因素下,更是遭受着有史以来最严重的挫败,迟迟看不到回暖的迹象。危机之下,除了迫切期待盛衰周期的轮转," 破局 " 正在成为存储芯片厂商新的信条。在行业寒冬折射出来的跌宕起伏的命运中,探寻新的出路,而这个新的出路因为近期ChatGPT的爆火打开了出口。据台媒科技媒体《电子时报》报道,半导体供应链透露,受聊天机器人ChatGPT需求推动,大量订单涌向台积电急单来自英伟达、AMD与苹果的AI、数据中心平台,当中爆红的ChatGPT推力最大。这种情况将带动台积电业开始慢慢的回升。从曾经的爆火到爆冷,也让不少人重新认识了半导体行业。既然半导体行业有回升的势头,那么我们可以获取一下关于芯片库存和芯片信息,数据来源于:www.ti.com.cn经过多次的网页分析,发现获取数据需要cookie,使用cookie获取详情页代码如下:
def getItemInfo(url):
logger.info(f'正在请求详情url-{url}')
cookie,proxies = getCookie(url)
headers = {
'authority': 'www.xx.com.cn',
'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
'referer':'https://www.xx.com.cn/product/cn/THS4541-DIE',
'cookie':cookie
}
res = getRes(url, headers,proxies, '', 'GET')
content = res.content.decode('utf-8')
print(content)
exit()
sel = Selector(text=content)
Parameters = sel.xpath('//ti-tab-panel[@tab-title="参数"]/ti-view-more/div').extract_first()
Features = sel.xpath('//ti-tab-panel[@tab-title="特性"]/ti-view-more/div').extract_first()
Description = sel.xpath('//ti-tab-panel[@tab-title="描述"]/ti-view-more').extract_first()
if Parameters and Features and Description:
还有就是网站详情页带cookie请求有100多次,如果用本地代理一直去请求,会有IP封锁的可能性出现,导致无法正常获取。所以,需要高效请求的话,优质稳定的代理IP必不可少,我这里通过高匿的爬虫代理加强版且并发在100以上请求的T网站,数据很快就访问出来了。本次使用的代码如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "www.ti.com.cn"
# 要访问的目标HTTPS页面
# targetUrl = "www.ti.com.cn"
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "16ZDFXYD"
proxyPass = "254875"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text
若有收获,就点个赞吧