总结:用Selenium进行百度搜索结果简单提取

优采云 发布时间: 2022-09-23 22:17

  总结:用Selenium进行百度搜索结果简单提取

  使用Selenium访问百度,输入搜索关键词,提取搜索页面的查询结果。

  1.headless chrome模式访问百度主页

  #chrome选项

options = webdriver.ChromeOptions()

#使用无头chrome

options.set_headless()

#配置并获得WebDriver对象

driver = webdriver.Chrome(

'D://chromedriver_win32//chromedriver', chrome_options=options)

#发起get请求

driver.get('http://www.baidu.com/')

  2.百度首页用于输入搜索关键词组件是

  使用selenium通过id、name或class获取输入标签,输入内容并提交:

  input_element = driver.find_element_by_name('wd')

input_element.send_keys('python')

input_element.submit()

  通过name属性获取输入标签后,要查询的内容为'python'

  

  3.等待百度查询结果页面:

  使用python作为关键字查询时,百度在返回查询结果页面时会将查询关键字收录在浏览器标题中:

  所以使用这个功能,当WebDriver的标题中出现收录'python'的文字时,就意味着百度已经返回搜索结果页面了

  try:

#最多等待10秒直到浏览器标题栏中出现我希望的字样(比如查询关键字出现在浏览器的title中)

WebDriverWait(driver, 10).until(

expected_conditions.title_contains('python'))

finally:

#关闭浏览器

driver.close()

  4. 从搜索结果页面中提取内容:

  第一个是“百度为你找到大约100,000,000条相关结果”,这个结果存储在一个span中:

  百度为您找到相关结果约100,000,000个

  使用class属性查找标签span,提取span中的文字,进一步只提取数字100,000,000

  try:

#最多等待10秒直到浏览器标题栏中出现我希望的字样(比如查询关键字出现在浏览器的title中)

<p>

WebDriverWait(driver, 10).until(

expected_conditions.title_contains(&#39;python&#39;))

print(driver.title)

bsobj = BeautifulSoup(driver.page_source)

num_text_element = bsobj.find(&#39;span&#39;, {&#39;class&#39;: &#39;nums_text&#39;})

print(num_text_element.text)

nums = filter(lambda s: s == &#39;,&#39; or s.isdigit(), num_text_element.text)

print(&#39;&#39;.join(nums))

finally:

#关闭浏览器

driver.close()</p>

  使用 BeautifulSoup 帮助提取内容。

  利用页面内容生成BeautifulSoup对象后,调用find方法查找class属性为nums_text的span标签,取出其文本内容。

  如果需要,可以使用过滤功能将文本内容中需要的部分(例如数字和逗号)过滤掉

  5. 进一步使用 BeautifulSoup 提取结果页面中的链接和标题

  搜索结果存放在class属性收录c-container的div标签中。

  内容分享:使网站上的内容可搜索

  使 网站 上的内容可搜索

  当用户搜索 网站 时,结果可能来自多个位置,例如列、库和页面。 网站所有者可以更改搜索设置以允许内容出现在搜索结果中。内容权限也会影响是否允许用户查看搜索结果中的内容。深入了解权限和搜索设置的工作原理有助于确保用户在搜索结果中看到正确的文档和 网站。

  注意事项

  搜索结果始终经过安全调整,因此用户只能查看他们有权查看的内容。搜索设置仅定义搜索索引中收录的内容。

  在某些情况下,用户有权查看内容,但仍无法在搜索结果中找到内容。有关详细信息,请参阅在创建新组后不为组所有者显示 Office 365 结果。

  计划在搜索结果中提供内容

  作为 网站 的所有者,您可以使用设置来控制内容是否出现在搜索结果中。内容存储在许多位置,包括 网站、列表、库、Web 部件和列。默认情况下,网站、列表、库、Web 部件或列中收录的大多数内容都将被爬网并添加到搜索索引中。搜索索引中的内容决定了经典搜索体验和现代搜索体验的搜索结果中显示的内容。对项目、列表、库、网站 等设置的权限也会影响用户是否可以查看搜索结果中的内容。

  网站所有者和网站集管理员可以选择内容是否可以出现在搜索结果中。默认情况下,网站 的内容可以显示在搜索结果中。如果 网站 所有者或 网站 设置管理员指定某些 网站 内容不能显示在搜索结果中,则其他搜索结果设置(例如,对于列表、库、ASPX 页面和此 < @网站 列设置)无效。

  同样,如果 网站owner 或 网站set 管理员阻止列表或库内容出现在搜索结果中,则排除列无效。为了有效地规划搜索,了解从更高级别继承的设置非常重要。

  了解搜索设置和权限

  网站所有者的职责之一是控制谁可以访问内容。您可以授予某些人阅读和更改内容的权限,允许其他人仅阅读内容,并阻止其他人完全查看内容。为了适应这种灵活性,请使用分配了特定权限级别的权限组。为了允许用户访问此 网站 或此 网站 上的内容,网站 所有者将用户分配到一个或多个安全组。结合使用权限设置和搜索结果设置,网站所有者可以管理用户是否可以查看搜索结果中的内容。

  例如,假设 Joe 正在 Microsoft Office Word 中处理请求 (RFP),并且正在与一个 10 人的团队协作。他的团队 网站 有 50 个用户,他们都是 网站 成员。 Joe 还没有准备好让整个团队审查 RFP。所以在上传到团队网站的时候,他设置了权限,只有10个团队可以查看和编辑。在所有 50 人都被授予读取权限之前,只有 10 人有权查看文档,才能看到搜索结果中列出的文档。

  权限可应用于列表、网站、视图和 Web 部件。此外,权限可能取决于其他权限。所有这些操作都会影响用户在搜索结果中看到的内容。因此,在向 网站 添加任何内容之前,您可能需要熟悉 SharePoint 的权限模型、您的 网站 或组织的权限模型,或者规划 网站 的权限模型。

  另请参阅:默认 SharePoint 组 SharePoint

  在搜索结果中显示 网站 上的内容

  作为网站的所有者,您可以选择网站上的内容是否可以出现在搜索结果中。默认情况下,所有 网站 内容都可以出现在搜索结果中。查看搜索结果的用户必须拥有查看内容的权限。

  注意事项

  要更改此设置,您必须具有“管理访问”权限级别。此权限级别收录在“网站name”所有者组中。

  在网站上,选择设置

  ,然后选择站点设置。如果您没有看到“网站Settings”,请选择“网站 Information”,然后选择“View All 网站Settings”。

  在搜索下,点击搜索和离线可用性。

  在“索引 网站 内容”部分的“允许此 网站 出现在搜索结果中”下,选择“是”以允许 网站 内容出现在搜索结果中。

  要防止内容出现在搜索结果中,请选择否。

  

  在搜索结果中显示列表或库中的内容

  作为 网站 的所有者,您可以决定是否将 网站 的列表和库中的项目收录在搜索结果中。默认情况下,每个列表和库都设置为收录搜索结果中的所有项目。

  注意事项

  要更改此设置,您必须具有“管理列表”权限级别。 Designer 和“网站Name”所有者组收录此权限级别。如果您没有“管理列表”权限,则此过程中描述的菜单不可用。

  在网站上,找到并单击您要自定义的列表或库。

  选择设置

  然后选择“网站 设置”。如果您没有看到“网站Settings”,请选择“网站 Information”,然后选择“View All 网站Settings”。

  在“网站管理”下,单击“网站库和列表”。

  单击列表中的项目,例如自定义、共享文档。

  在列表设置页面的常规设置下,单击高级设置。

  在“搜索”部分的“允许此文档库中的项目出现在搜索结果中”下,选择“是”以将列表或库中的所有项目包括在搜索结果中。

  要防止列表或库中的项目出现在搜索结果中,请选择否。

  在搜索结果中显示 ASPX 页面内容

  您可以控制 ASPX 页面的内容是否收录在搜索结果中。创建 网站 时,会自动创建许多内容页面。例如,您的 网站 库的 default.aspx、allitems.aspx Web 部件会自动创建多个页面。您还可以创建自定义 ASPX 页面。

  默认情况下,当 ASPX 页面上显示的 Web 部件使用来自收录受限权限(也称为“细粒度权限”)的列表或库中的信息时,搜索结果中不收录 网站 内容任何 ASPX 页面。这将防止未经授权的用户查看内容。

  例如,假设有 50 个成员的团队 Web 部件共享文档网站 中显示了五个文档。其中一份文件具有受限权限;只允许少数人查看。自动从搜索结果中隐藏此 网站 中的内容,以便用户搜索时不会显示此文档的内容。这可以防止无意中看到不应在 ASPX 页面上看到的内容。

  您可以选择忽略此设置以在搜索结果中显示所有内容,而不管权限如何。在这种情况下,所有内容都可以显示在搜索结果中,但未经授权的用户将无法访问实际文档。另一种选择是不在搜索结果中收录任何 ASPX 内容,无论权限如何。

  注意事项

  要更改此设置,您必须具有“管理访问”权限级别。此权限级别收录在“网站name”所有者组中。

  在网站上,选择设置

  ,然后选择站点设置。如果您没有看到“网站Settings”,请选择“网站 Information”,然后选择“View All 网站Settings”。

  在搜索下,点击搜索和离线可用性。

  

  在“索引 ASPX 页面内容”部分中,选择以下选项之一:

  选项说明

  如果此 Web 部件收录细粒度权限,则不要编制索引

  当 ASPX 页*敏*感*词*有与父 网站 不同的权限时,网站 上的内容将不会出现在搜索结果中。

  始终为此 网站

  索引 Web 部件

  在搜索结果中显示来自 网站 上所有 ASPX 页面的内容,无论权限如何。

  从不为此 网站

  索引 Web 部件

  从搜索结果中隐藏 网站 上所有 ASPX 页面的内容,无论权限如何。

  从搜索结果中排除列内容

  作为 网站 的所有者,您可以控制列表或库中特定列中的内容是否出现在搜索结果中。默认情况下,所有内容都收录在搜索结果中。当您希望防止敏感数据出现在搜索结果中时,此设置非常有用。

  注意事项

  要更改此设置,您必须具有“管理访问”权限级别。此权限级别收录在“网站name”所有者组中。

  在收录列表或库中

  ,然后选择“网站 设置”。如果您没有看到“网站Settings”,请选择“网站 Information”,然后选择“View All 网站Settings”。

  在搜索下,点击可搜索的列。

  在“从搜索索引中排除的列”部分的“排除”下,选中要从搜索结果中排除的列名称旁边的框。

  注意事项

  出现的列是属于当前网站的列。

  爬取和重新索引 网站

  当用户搜索您的 网站SharePoint 时,您的搜索索引中的内容决定了他们会找到什么。搜索索引收录来自 网站 上所有文档和页面的信息。在 SharePoint 中,会根据定义的爬网计划自动爬网内容。爬虫获取自上次爬取以来发生的变化并更新索引。

  对于搜索架构已更改且托管属性已添加/删除/更改的情况,您将需要专门请求对 网站 进行完整的重新索引。有关详细信息,请参阅手动请求对 网站 进行爬网和重新索引。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线