【问题标题】:Why do i keep getting none when doing web scraping in python为什么在python中进行网络抓取时我一直没有得到
【发布时间】:2020-05-14 21:38:42
【问题描述】:

这是我写的代码。我看了很多教程,但他们用完全相同的代码得到了输出

import requests
from bs4 import BeautifulSoup as bs
url="https://shop.punamflutes.com/pages/5150194068881408"
page=requests.get(url).text
soup=bs(page,'lxml')
#print(soup)
tag=soup.find('div',class_="flex xs12")
print(tag)

我总是一无所获。班级名称也很奇怪。视图源代码与检查元素的东西不同

【问题讨论】:

    标签: python html parsing web-scraping lxml


    【解决方案1】:

    Bs4 很奇怪。有时它返回的代码与页面上的代码不同……它会根据源代码进行更改。尝试使用硒。它工作得很好,比 bs4 有更多的用途。最重要的是...在网站上查找元素非常容易。

    【讨论】:

      【解决方案2】:

      这不是 bs4 问题,它正确解析了 requests 返回的内容。这取决于网页本身

      如果您检查“汤”,您会看到页面的来源是一组指向在页面上呈现内容的脚本的链接。为了执行这些脚本,您需要有一个浏览器 - 请求只会让您获得网络服务器返回的内容,但不会为您执行 javascript。您可以通过在浏览器的开发人员工具中停用 javascript 来自行验证。

      解决方案是使用网络浏览器(例如无头 chrome + chromedriver)和 Selenium 来控制它。有很多关于如何做到这一点的好教程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-11
        • 2022-08-18
        • 1970-01-01
        • 2022-12-20
        • 1970-01-01
        • 2016-08-18
        • 1970-01-01
        • 2018-03-20
        相关资源
        最近更新 更多