求助Python r.text 返回了不规律的代码,有什么解决方向呢?

特爱点赞的野蛮人
  • 1.2k

刚学Python,第一次爬网页,响应码也是200,但是返回的结果是一个各种 html JavaScript css 混在一起的东西,请问这个该如何解决呢?

恳请大家能帮我解答一下,一个关键词一个参考资料都行,自己弄实在摸不到头脑。

代码如下:

url ="https://subway.simba.taobao.com/#!/manage/adgroup/detail?productId=101001005&tab=keyword&campaignId=47566964&start=2020-05-19&end=2020-05-19&adpage=1&adGroupId=2050897570&rptType=realTime"
kv={
    'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-encoding':'gzip, deflate, br',
    'accept-language':'zh-CN,zh;q=0.9',
    'cookie': ck ,
    'referer':'https://subway.simba.taobao.com/',
    'sec-fetch-dest':'document',
    'sec-fetch-mode':'navigate',
    'sec-fetch-site':'same-origin',
    'sec-fetch-user':'?1',
    'upgrade-insecure-requests':'1',
    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
    }
    

    
try:

    r=requests.get(url, kv )
    print(r.status_code)
    print(r.text)
    #print(r.headers)
except:
    print("爬取失败")

QQ拼音截图20200520013645.png

回复
阅读 1.3k
3 个回答

很明显你抓取的是动态网页,即需要js解析后才是你用浏览器看到的页面内容。selenium可以解决这一问题。另标签一半不是问题,浏览器会自动使用非标准模式纠偏。通常抓取页面某一部分数据, 你需要使用xpath和Css解析Dom文档对象。

有的网站html页面是分块的,具体是怎么实现的我也不清楚。现象就是一次请求只返回部分html页面。这样情况我是使用selenium解决的。

这个就是页面的代码啊,用 re、Scrapy 需要什么解析就好了

宣传栏