dmc2003040 2022-01-25 13:28 采纳率: 0%
浏览 68

我的爬虫得到的是空内容

本来我是打算得到十个最火的图片 但是在加粗的地方出现了问题,得到的是空的数组(大概),我不太清楚应该怎么改,欢迎各位指正

def main():
    baseurl = "https://stock.tuchong.com/topic?topicId=50344&from=%E7%B2%BE%E9%80%89%E5%9B%BE%E9%9B%86-%E4%B8%8B%E8%BD%BD%E6%8E%92%E8%A1%8C-%E5%AD%A3%E5%BA%A6%E6%A6%9C%E5%8D%95"
    datalist = getDate(baseurl)

findImgSrc = re.compile(r'<a href="(.*?)">')
def getDate(baseurl):
    datalist = []
    html = askURL(baseurl)
   ** soup = BeautifulSoup(html,"html.parser")
    link = re.findall(findImgSrc,str(soup))[10]
    print(link)**
def askURL(baseurl):
    head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36"}
    request = urllib.request.Request(baseurl,headers=head)
    html = ""
    try:
        response = urllib.request.urlopen(request)
        html = response.read().decode("utf-8")
    except urllib.error.URLError as e:
        if hasattr(e,"code"):
            print(e.code)
        if hasattr(e,"reason"):
            print(e.reason)
    return html
if __name__ =="__main__":
    main()

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-01-25 14:25
    关注
    图片是js解析后生成的,并不是被反扒了

    request得到的源代码和浏览器解析的后不一样,数据在页头js变量goods中

    img

    主要用到image_id变量,组成成图片地址为

    //cdn6-banquan.ituchong.com/weili/smh/{image_id}.webp
    
    

    链接地址

    https://stock.tuchong.com/image/detail?imageId={image_id}&platform=image&term=&requestId=&searchId=&page=1&entryFrom=%E4%B8%93%E9%A2%98%E5%88%97%E8%A1%A8&index=29
    
    

    代码如下

    img

    import re
    import urllib.request, urllib.error
    import json
    def main():
        baseurl = "https://stock.tuchong.com/topic?topicId=50344&from=%E7%B2%BE%E9%80%89%E5%9B%BE%E9%9B%86-%E4%B8%8B%E8%BD%BD%E6%8E%92%E8%A1%8C-%E5%AD%A3%E5%BA%A6%E6%A6%9C%E5%8D%95"
        datalist = getDate(baseurl)
        print(datalist)
     
    reJs = re.compile(r'goods=([\s\S]+?)</script>')
    def getDate(baseurl):
        datalist = []
        html = askURL(baseurl)
        jsonstr = reJs.findall(html)[0].strip().rstrip(';')
        data=json.loads(jsonstr)
        arr=[]
        for i in range(0,10):#获取前10张图
            arr.append({
                'url':'https://stock.tuchong.com/image/detail?imageId='+data[i]['image_id']+'&platform=image&term=&requestId=&searchId=&page=1&entryFrom=%E4%B8%93%E9%A2%98%E5%88%97%E8%A1%A8&index='+str(i),
                'img':'//cdn6-banquan.ituchong.com/weili/smh/'+data[i]['image_id']+'.webp'
             })
        return arr
    
    def askURL(baseurl):
        head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36"}
        request = urllib.request.Request(baseurl,headers=head)
        html = ""
        try:
            response = urllib.request.urlopen(request)
            html = response.read().decode("utf-8")
        except urllib.error.URLError as e:
            if hasattr(e,"code"):
                print(e.code)
            if hasattr(e,"reason"):
                print(e.reason)
        return html
    if __name__ =="__main__":
        main()
     
    
    

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月25日

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配