简单爬取京东首页的秒杀商品

import requests
import json
import urllib.request
import urllib.parse


url = 'https://api.m.jd.com/api?appid=o2_channels&functionId=pcMiaoShaAreaList&client=pc&clientVersion=1.0.0&callback=pcMiaoShaAreaList&jsonp=pcMiaoShaAreaList&body=%7B%7D&_=1647310274535'

header = {
    'accept': '*/*',
# 'accept-encoding': 'gzip, deflate, br'
'accept-language': 'zh-CN,zh;q=0.9',
'cookie': 'unpl=JF8EAJVnNSttCkoHAxwFGhsZTw5SWw9YTEdQaDdVVw9RHlYCGVcSQRN7XlVdXhRKFR9vYxRVVVNPVQ4YBSsSEXteU11bD00VB2xXVgQFDQ8WUUtBSUt-SF1UXVoATRYAZm8NZG1bS2QFGjITFxVNWFxXXDh7EDNfVwFTVFlLUzUaMhoiUh8BUFpaDUgeTmdiAFJYUEJVNRoyGA; __jdv=76161171|baidu-search|t_262767352_baidusearch|cpc|211269702899_0_c0b7660885b74ca6ab6aa2c8d363d8b2|1647309025274; __jdu=94474980; areaId=6; ipLoc-djd=6-350-0-0; PCSYCityID=CN_0_0_0; shshshfp=9eb171c1b130ceb910fb5f8ec3161a72; shshshfpa=88f4e096-733b-aefa-8379-a10b8d429ff6-1647309026; shshshsID=229162e013f5907bd72edcb411fe6542_1_1647309026688; shshshfpb=ue_hceA6SOVixr7zQx0OWpw; __jda=122270672.94474980.1647309024.1647309024.1647309025.1; __jdb=122270672.2.94474980|1.1647309025; __jdc=122270672; 3AB9D23F7A4B3C9B=67GHRGUA5DVD2H3UDVAMIGNR2ZLAOTDLDAWSMAXCVHU22ZXRVLQBIM6SIAXABWODS2MYOUDKTGZQGYTEAQFGBTPWAY',
'referer': 'https://miaosha.jd.com/',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': "Windows",
'sec-fetch-dest': 'script',
'sec-fetch-mode': 'no-cors',
'sec-fetch-site': 'same-site',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'
}
response = requests.get(url,headers=header)

text = response.text.split('(',1)[1]
# with open('jingdong.json','w',encoding='utf-8')as fp:
#     fp.write(text)

text0 = json.load(open('jingdong.json','r',encoding='utf-8'))

for show in text0['miaoShaList']:
    name = show['shortWname']
    name = name.replace(r'*','X').replace(r'/','每').replace(r'|','')

    imgurl ='https:' + urllib.parse.unquote(show['imageurl'])
    print(name,imgurl)

    r = requests.get(url = imgurl)
    try:
        with open(file='./showimg/'+name+'.jpg',mode='wb')as fp:
            fp.write(r.content)
    except:
        print('....')
    # urllib.request.urlretrieve(url=imgurl,filename='./showimg/'+name+'.jpg')

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用PHP来爬取京东商品信息,我们可以使用CURL库和正则表达式来实现。 首先,我们需要使用CURL库来发送HTTP请求并获取京东网页的内容。使用curl_init函数创建一个新的CURL会话,设置URL为京东商品页面的URL,然后使用curl_exec函数执行这个会话,最后使用curl_close函数关闭会话。这样我们就可以获取到京东商品页面的HTML源代码了。 接下来,我们可以使用正则表达式来从HTML源码中提取我们所需的数据,比如商品名称、价格、评论等信息。通过分析京东商品页面的HTML结构,我们可以编写相应的正则表达式来匹配所需的数据。使用preg_match函数可以进行正则匹配,将匹配到的结果保存到相应的变量中。 最后,我们可以将匹配到的商品信息保存到数据库或者输出到页面中。如果要保存到数据库中,我们可以使用PHP的MySQLi扩展来连接数据库,并使用SQL语句将数据插入到数据库中。如果要输出到页面中,我们可以使用echo函数将数据直接输出到页面上。 需要注意的是,京东网站可能会有反爬虫的机制,我们需要使用一些技巧来规避这些机制,比如设置请求头部信息、添加延迟等。 总结起来,使用PHP爬取京东商品信息的步骤包括发送HTTP请求获取HTML源码、使用正则表达式提取所需数据、保存到数据库或输出到页面。通过这些步骤,我们就可以实现PHP爬取京东商品险情的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值