抓取,需要帮助,使用python

时间:2020-06-30 18:48:20

标签: python beautifulsoup

我正在尝试查找由于搜索而弹出的链接,但是代码表明我什么也没找到

import Foundation

class SearchViewModel: ObservableObject {
    
    @Published var searchedMovies = [Movie]()
    
    private var fetchedMovies = [MovieList]()
    
    func fetchMovies(movie: String) {
        
        WebService().searchForMovie(movie: movie) { movie in
            
            if let movie = movie {
                
                self.fetchedMovies.append(movie)
                
                for movie in movie.movies {
                    
                    self.searchedMovies.append(movie)
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您要查找的div是通过javascript而不是原始html加载的。 Beautifulsoup只能找到html本身中的div。获取此类内容的最佳方法是找到javascript从中加载内容的其中。为此,我建议您仅使用f12打开开发人员工具,然后刷新页面并查找xhr请求。就您而言,数据是从

加载的

https://wormbase.org/search/gene/R04B5.4a/1?inline=1

如果您在此页面上运行代码,则将获得结果。如果您需要从此站点进行其他查询,则可以将R04B5.4a部分替换为其他查询。

编辑: 在浏览器(Chrome浏览器,Firefox,Internet Explorer等)中,转到要抓取的网页。在键盘上按f12键,您应该会看到开发人员工具。它应该有一个标签,其中包含元素,控制台等。

您要转到显示“网络”的标签。然后刷新页面。您应该会在网络标签中看到一堆请求。这些是您加载页面时发出的所有请求。这些请求具有“类型”。

XHR请求代表服务器和计算机之间发送的数据。查找类型为XHR的请求,其中一个或多个将具有您要查找的数据。

通常(取决于您的浏览器)如果双击每个请求,它将在一个新选项卡中打开并向您显示其中包含的内容。找到具有所需数据的请求后,您只需获取该请求的URL即可使用。

对于您来说,我上面的链接是XHR请求的链接,该请求检索搜索结果。