Python 网站屏蔽了不被抓取的内容,如何抓取?

How to crawl in Python while the website blocked contents not to be crawled?

我是 Python 的初学者,尝试使用 BeautifulSoup 进行抓取。并试图抓取一个收集产品信息的网站。

pr_url = soup.findAll("li", {"class", "_3FUicfNemK"})
pr_url

一切都与使用BeautifulSoup的其他抓取代码相同。 但问题是,即使我写下了正确的组件,也没有任何反应。

所以我想的是主机屏蔽了产品区不被抓取 因为除了区域之外的每个元素都是可抓取的。

你知道如何爬取这个被屏蔽的区域吗? 站点 url 是: https://shopping.naver.com/living/homeliving/category?menu=10004487&sort=POPULARITY

提前感谢您的意见!

请注意,当您第一次加载页面时,网站的大纲会加载但产品需要一段时间才能加载?这是因为该站点正在请求在后台加载其余内容。此内容未被阻止,只是稍后加载:)

这里有 2 个选项 i.m.o...

1) 找出后台请求并将其传递给 beautifulsoup。使用 Chrome 开发工具网络选项卡,我可以看到对产品的请求是...

https://shopping.naver.com/v1/products?nc=1583366400000&subVertical=HOME_LIVING&page=1&pageSize=10&sort=POPULARITY&filter=ALL&displayType=CATEGORY_HOME&includeZzim=true&includeViewCount=true&includeStoreCardInfo=true&includeStockQuantity=false&includeBrandInfo=false&includeBrandLogoImage=false&includeRepresentativeReview=false&includeListCardAttribute=false&includeRanking=false&includeRankingByMenus=false&includeStoreCategoryName=false&menuId=10004487&standardSizeKeys=&standardColorKeys=&attributeValueIds=&attributeValueIdsAll=&certifications=&menuIds=&includeStoreInfoWithHighRatingReview=false

应该能够在这里猜出对查询字符串的调整并使用它。

2) 使用像 Selenium 这样的工具,它可以与浏览器交互并为您执行任何 JavaScript,这样您就不必弄清楚事情的那一面。如果您是这些东西的新手,那么在这里学习网络技术可能不太容易。