Python BeautifulSoup刮削找不到全部';a';标签

Python BeautifulSoup刮削找不到全部';a';标签,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,我有一些代码,这是用来工作,但由于网站上的变化不再这样做。 我正试图从Apple页面抓取所有a标记,以便编译一个不推荐的方法列表,如下面列出的方法: 可以在此处找到这些可能包含不推荐方法的方法: 它按部分列出了方法-这里有一个用于加速 尽管是a标记,但以下代码不会拾取href标记中的/documentation/accelerate,而是拾取页面上的其他链接,如页脚 headers = { 'Access-Control-Allow-Origin': '*',

我有一些代码,这是用来工作,但由于网站上的变化不再这样做。 我正试图从Apple页面抓取所有
a
标记,以便编译一个不推荐的方法列表,如下面列出的方法:

可以在此处找到这些可能包含不推荐方法的方法:

它按部分列出了方法-这里有一个用于加速

尽管是
a
标记,但以下代码不会拾取href标记中的
/documentation/accelerate
,而是拾取页面上的其他链接,如页脚

headers = {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET',
        'Access-Control-Allow-Headers': 'Content-Type',
        'Access-Control-Max-Age': '3600',
        'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'
        }

url = "https://developer.apple.com/documentation/technologies"
req = requests.get(url, headers)
soup = BeautifulSoup(req.content, 'html.parser')


for a in soup.find_all('a', href=True):
    print str(a)
我做错了什么? 我还尝试了其他匹配,例如汤中a的
。查找所有('a',class=card):
但这也没有发现任何问题。 我猜它可能是从Javascript或其他东西中提取出来的?

会发生什么? 如果您查看一下您的汤,您将确定响应中没有此类
。所以你找不到它

原因是,页面正在处理动态内容

如何解决这个问题? 您可以使用selenium抓取
页面\源代码
,因为selenium可以很好地处理动态内容:

示例

from selenium import webdriver
from bs4 import BeautifulSoup
from time import sleep

driver = webdriver.Chrome(executable_path='C:\Program Files\ChromeDriver\chromedriver.exe')
url = "https://developer.apple.com/documentation/technologies"

driver.get(url)
sleep(2)

soup = BeautifulSoup(driver.page_source, 'lxml')


for a in soup.find_all('a', href=True):
    print(a)
    
driver.close()

你说得对,数据是从javascript中提取的。您应该使用
selenium
来尝试此功能。我也这么想,谢谢。对于发现此问题的任何其他人-如果您在macOS上,则需要chromedriver
brew安装chromedriver
并从上述答案中删除
可执行文件路径=