Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:执行Google搜索并仅从前10个结果中提取内容_Python_Html_Web_Beautifulsoup_Screen Scraping - Fatal编程技术网

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

Python:执行Google搜索并仅从前10个结果中提取内容,python,html,web,beautifulsoup,screen-scraping,Python,Html,Web,Beautifulsoup,Screen Scraping,我正在尝试编写一个脚本,在谷歌上搜索输入关键字,只返回前10个URL中的内容 注意:内容特别是指被搜索词请求的内容,这些内容可以在返回的URL的主体中找到 我已经完成了搜索和10大url检索部分。以下是脚本: from google import search top_10_links = search(keyword, tld='com.in', lang='en',stop=10) 但是,我无法在不知道链接结构的情况下仅从链接中检索内容。我可以通过使用开发工具查找标签的类别等来从特定网站中

我正在尝试编写一个脚本,在谷歌上搜索输入关键字,只返回前10个URL中的内容

注意:内容特别是指被搜索词请求的内容,这些内容可以在返回的URL的主体中找到

我已经完成了搜索和10大url检索部分。以下是脚本:

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类会针对不同的站点进行更改。有什么方法可以让这个脚本正常工作并获得所需的内容吗?

如果不知道要刮取的内容的结构,就不能进行刮取。但是有一个软件包可以执行类似的操作。看一看

在许多情况下,您想要的内容是网页中最里面的文本,也就是说,它不包含更多的标记。你可以在BeautifulSoup和正则表达式的帮助下编写代码,从网页中获取最里面的文本,而不管网页的设计如何,但这样做不会很有条理,你也可以获取不必要的文本。我也得到了内容和乱七八糟的文字。难道没有办法摆脱它吗?也许没有@毕达德是正确的。如果不了解页面结构,您就无法进行浏览。