sayangrtg 发表于 2021-11-20 13:42:04

初学爬虫。网站找不到想要的信息

本帖最后由 sayangrtg 于 2021-11-21 18:54 编辑

求教各位大神,小弟在尝试飞利浦照明的网站https://www.philips-hue.com/zh-cn/products/all-products
read html后似乎只是返回这个网站上半部分的内容。 而下面各个产品的名字似乎完全不在返回的内容里。这是怎么回事呢?

代码也就是普通的提取网页HTML如下。

import requests
from bs4 import BeautifulSoup as soup

url = 'https://www.philips-hue.com/zh-cn/products/all-products'
header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
'referer':'https://www.philips-hue.com/zh-cn/'}
r = requests.get(url,headers = header)
page_html = r.content
page_soup = soup(page_html,'html.parser')

然后用beautifulsoup尝试各种attribute都找不到图中各产品信息,用html viewer 才发现返回的似乎只是网站上各个目录的链接,并没有底下的产品名字及其链接。

我的目的就是类似于爬妹子图一样,先爬取所有产品的URL,然后再依次进入该URL来爬取对应的产品详细信息。但所有产品的URL在返回的HTML内容里找不到。
求解。。。?

suchocolate 发表于 2021-11-20 19:10:00

所以你的代码在哪里?

sayangrtg 发表于 2021-11-21 18:56:01

本帖最后由 sayangrtg 于 2021-11-21 18:58 编辑

suchocolate 发表于 2021-11-20 19:10
所以你的代码在哪里?

你好,我想编辑我的主题然后发现它消失了, 只能 这样回复你。
求教各位大神,小弟在尝试飞利浦照明的网站https://www.philips-hue.com/zh-cn/products/all-products
read html后似乎只是返回这个网站上半部分的内容。 而下面各个产品的名字似乎完全不在返回的内容里。这是怎么回事呢?

代码也就是普通的提取网页HTML如下。

import requests
from bs4 import BeautifulSoup as soup

url = 'https://www.philips-hue.com/zh-cn/products/all-products'
header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36',
'referer':'https://www.philips-hue.com/zh-cn/'}
r = requests.get(url,headers = header)
page_html = r.content
page_soup = soup(page_html,'html.parser')

然后用beautifulsoup尝试各种attribute都找不到图中各产品信息,用html viewer 才发现返回的似乎只是网站上各个目录的链接,并没有底下的产品名字及其链接。

我的目的就是类似于爬妹子图一样,先爬取所有产品的URL,然后再依次进入该URL来爬取对应的产品详细信息。但所有产品的URL在返回的HTML内容里找不到。
求解。。。?

快速收敛 发表于 2021-11-22 10:25:38

通过抓包,结果应该是在其他请求中,而不是首页,接口地址应该是这个https://api.webcontent.signify.com/product-search/search/products/HUE/zh_CN?page=1&sort=relevance&source=magento-inhouse&hidePrice=true

sayangrtg 发表于 2021-11-22 15:14:48

快速收敛 发表于 2021-11-22 10:25
通过抓包,结果应该是在其他请求中,而不是首页,接口地址应该是这个https://api.webcontent.signify.com/p ...

谢谢,我不懂什么是抓包,抓包不是Python的内容吧?
请问我是不是就应该直接用你找到的这个接口地址,然后用正则表达式找到所有产品的URL?

快速收敛 发表于 2021-11-22 16:31:04

sayangrtg 发表于 2021-11-22 15:14
谢谢,我不懂什么是抓包,抓包不是Python的内容吧?
请问我是不是就应该直接用你找到的这个接口地址,然 ...

返回结果是json字符串,可以转化为python字典对象,然后键值对取值就可以吧

快速收敛 发表于 2021-11-22 16:33:56

快速收敛 发表于 2021-11-22 16:31
返回结果是json字符串,可以转化为python字典对象,然后键值对取值就可以吧

浏览器自带抓包,你可以网上搜索相关资料,chrome浏览器可以F12打开控制台进行调试请求

sayangrtg 发表于 2021-11-23 07:56:22

快速收敛 发表于 2021-11-22 16:33
浏览器自带抓包,你可以网上搜索相关资料,chrome浏览器可以F12打开控制台进行调试请求

谢谢。可惜点进具体产品网页之后比如https://www.philips-hue.com/zh-cn/p/hue-white-ambiance-garnea-hue-white-ambience-downlight/5110531H5, 用浏览器抓包也找不到产品具体规格信息的来源URL了。可能是我能力有限

快速收敛 发表于 2021-11-23 10:00:24

sayangrtg 发表于 2021-11-23 07:56
谢谢。可惜点进具体产品网页之后比如https://www.philips-hue.com/zh-cn/p/hue-white-ambiance-garnea-hu ...

多分析分析,每个请求都看一下,肯定有个请求是的
页: [1]
查看完整版本: 初学爬虫。网站找不到想要的信息