美丽的汤CSS选择器没有找到任何东西

时间:2019-11-20 08:07:58

标签: python css beautifulsoup css-selectors python-requests

我正在使用Python3。下面的代码应允许用户在命令行中输入搜索词,然后用户搜索Google并浏览结果页面的HTML,以找到与CSS选择器匹配的标签( '.r a')。

假设我们搜索“猫”一词。我知道自己要查找的标签存在于“猫”搜索结果页上,因为我自己浏览了该页源。

但是,当我运行代码时,linkElems列表为空。怎么了?

#include <iostream>
#include <fstream>
#include <string>

using namespace std;
int main() {

    ifstream inFS;
    ofstream outFS;
    string fileName;
    double fileNum;

    //fileName = "input_prac.txt";

    //cout << "Enter file name: " << endl;
    //cin >> fileName;

    cout << "Opening file..." << endl;
    inFS.open("input_prac.txt");      // Open file

    if (!inFS.is_open())
    {
        cout << "Could not open file" << endl;
        exit(1);
    }

    // Read file 
    while(!inFS.eof())
    {

        inFS >> fileNum;
        cout << fileNum << endl;
    }

    inFS.close();                // close file


    return 0;
}

1 个答案:

答案 0 :(得分:1)

“。r”类由Javascript呈现,因此在收到的HTML中不可用。您可以使用selenium或类似方法呈现javascript,也可以尝试使用更具创意的解决方案从标记中提取链接。首先,通过查找不含“ .r”类的标签来检查标签是否存在。 soup.find_all("a")然后举个例子,您可以使用regex to extract以“ / url?q =“

import re
linkelems = soup.find_all(href=re.compile("^/url\?q=.*"))