Python:执行Google搜索并仅提取前10个结果中的内容

时间:2017-07-04 05:42:38

标签: python html web beautifulsoup screen-scraping

我正在尝试编写一个脚本,对输入关键字执行Google搜索,并仅返回前10个网址中的内容。

注意:内容专门指的是搜索字词所请求的内容,可在返回的网址正文中找到。

我完成了搜索和前10个网址检索部分。这是脚本:

from google import search
top_10_links = search(keyword, tld='com.in', lang='en',stop=10)

但是我无法从链接中检索内容而不知道其结构。我可以通过查找特定网站的内容等来抓取特定网站的内容。使用开发工具的标签。但我无法弄清楚如何从前10个结果URL中获取内容,因为每个搜索的术语都有不同的URL(不同的网站有不同的css选择器),很难找到css类所需内容。以下是从特定网站提取内容的示例代码。

content_dict = {}
i = 1
for page in links:
    print(i, ' @ link: ', page)
    article_html = get_page(page)#get_page() returns page's html
    soup = BeautifulSoup(article_html, 'lxml')
    content = soup.find('div',{'class': 'entry-content'}).get_text()
    content_dict[page] = content
    i += 1

然而,css类会针对不同的站点进行更改。有没有我可以使这个脚本工作并获得所需的内容?

1 个答案:

答案 0 :(得分:1)

不能在不知道你正在抓什么的结构的情况下进行抓取。但是有一个包做了类似的事情。看看newspaper