如何使用Selenium更改搜索参数?

Maypher

我编写了一个程序,该程序使用Selenium根据用户输入的搜索查询从Bing获取随机图像。看起来是这样的:

import random
from msedge.selenium_tools import EdgeOptions
from msedge.selenium_tools import Edge

query = "cats" #This can be anything
query.replace(' ', '+')

edge_options = EdgeOptions()
edge_options.use_chromium = True
edge_options.add_argument('headless')
edge_options.add_argument('disable-gpu')

driver = Edge(executable_path='PATH/TO/DRIVER', options=edge_options)

#The URL that Edge generates when searching on Bing Images
ImageURL=f'https://www.bing.com/images/search?q={query}&form=HDRSC2&first=1&tsc=ImageBasicHover'

driver.get(ImageURL)

#An array with all the images that Selenium finds
all_images = driver.find_elements_by_class_name('mimg')
thumbnail = random.choice(all_images)

#Getting to the HTML that holds the image link
parent = thumbnail.find_element_by_xpath("..")
Grandparent = parent.find_element_by_xpath("..")
neededPage = Grandparent.get_attribute('href')

driver.get(neededPage)
image = driver.find_element_by_tag_name('img')
source = image.get_attribute('src')
print(source)

driver.quit()

一切正常,但我有问题。我只能寻找静态图片(Png,Jpg等)。如果我要查找GIF,关闭Edge的安全搜索或按上传日期搜索怎么办?有没有办法从硒中做到这一点?另外,每次运行代码时,我只会得到35个结果,如何增加该数字?

Yu Zhou

有两种添加搜索过滤器的方法。

  1. 在网址中添加搜索参数。

如果要添加搜索过滤器,可以在url:中添加此参数qft=+filterui:xxx

例如,如果要在过去24小时内搜索动画gif,可以添加以下参数:

qft=+filterui:photo-animatedgif+filterui:age-lt1440

完整的网址是这样的:

https://www.bing.com/images/search?q={query}&form=HDRSC2&first=1&tsc=ImageBasicHover&qft=+filterui:photo-animatedgif+filterui:age-lt1440
  1. 在代码中找到搜索过滤器。

就像Piotr M所说的那样,您可以使用css选择器找到过滤器。

例如,如果要在过去24小时内搜索动画gif,可以在代码中添加以下部分:

filter = driver.find_element_by_id('fltIdtTit')
filter.click()
time.sleep(3)
m = driver.find_element_by_css_selector("span[title='Type filter']")
m.click()
p = driver.find_element_by_css_selector("a[title='Animated GIF']")
p.click()
n=driver.find_element_by_css_selector("span[title='Date filter']")
n.click()
q=driver.find_element_by_css_selector("a[title='Past 24 hours']")
q.click()

对于搜索结果号,我没有找到更改它的选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从 html 表单更改 geojson 搜索参数

来自分类Dev

如何使用查询参数更改Google自定义搜索中每页的结果?

来自分类Dev

如何使用参数化通配符搜索?

来自分类Dev

如何使用参数化通配符搜索?

来自分类Dev

如何使用GA API搜索UTM参数

来自分类Dev

AngularJS:如何提供搜索工具并导致路径更改通过参数?

来自分类Dev

如何使用可选的搜索参数在SQL中创建搜索查询?

来自分类Dev

如何搜索参数对象

来自分类Dev

使用“ AND”和“ OR”搜索参数

来自分类Dev

使用参数进行搜索

来自分类Dev

如何使用Selenium从搜索结果中提取Google链接的href?

来自分类Dev

如何使用Selenium,Python从Google搜索中提取链接

来自分类Dev

如何使用Selenium和Python单击“搜索”按钮?

来自分类Dev

如何使用Selenium Webdriver处理自动搜索完成

来自分类Dev

如何使用Lunr.js查询参数搜索最好?

来自分类Dev

如何使用MultiOutputRegressor包装器为XGBoost网格搜索参数

来自分类Dev

日期搜索参数如何与“期间”字段一起使用?

来自分类Dev

如何在svn中使用svnlook搜索更改的项目

来自分类Dev

如何使用下拉选择器更改搜索值?

来自分类Dev

如何使用C更改我的LinkedList搜索节点代码

来自分类Dev

Vimperator似乎默认使用Google搜索-如何更改它

来自分类Dev

如何使用下拉选择器更改搜索值?

来自分类Dev

如何在搜索栏输入中使用“-”更改空间

来自分类Dev

使用多个搜索参数进行搜索

来自分类Dev

如何使用Selenium或Scrapy抓取AJAX页面参数中的信息?

来自分类Dev

如何用参数搜索数字?

来自分类Dev

如何更改参数htaccess

来自分类Dev

如何使用Selenium(Java)更改网页中的语言?

来自分类Dev

如何使用Selenium和Python更改DOM中的属性值

Related 相关文章

  1. 1

    如何从 html 表单更改 geojson 搜索参数

  2. 2

    如何使用查询参数更改Google自定义搜索中每页的结果?

  3. 3

    如何使用参数化通配符搜索?

  4. 4

    如何使用参数化通配符搜索?

  5. 5

    如何使用GA API搜索UTM参数

  6. 6

    AngularJS:如何提供搜索工具并导致路径更改通过参数?

  7. 7

    如何使用可选的搜索参数在SQL中创建搜索查询?

  8. 8

    如何搜索参数对象

  9. 9

    使用“ AND”和“ OR”搜索参数

  10. 10

    使用参数进行搜索

  11. 11

    如何使用Selenium从搜索结果中提取Google链接的href?

  12. 12

    如何使用Selenium,Python从Google搜索中提取链接

  13. 13

    如何使用Selenium和Python单击“搜索”按钮?

  14. 14

    如何使用Selenium Webdriver处理自动搜索完成

  15. 15

    如何使用Lunr.js查询参数搜索最好?

  16. 16

    如何使用MultiOutputRegressor包装器为XGBoost网格搜索参数

  17. 17

    日期搜索参数如何与“期间”字段一起使用?

  18. 18

    如何在svn中使用svnlook搜索更改的项目

  19. 19

    如何使用下拉选择器更改搜索值?

  20. 20

    如何使用C更改我的LinkedList搜索节点代码

  21. 21

    Vimperator似乎默认使用Google搜索-如何更改它

  22. 22

    如何使用下拉选择器更改搜索值?

  23. 23

    如何在搜索栏输入中使用“-”更改空间

  24. 24

    使用多个搜索参数进行搜索

  25. 25

    如何使用Selenium或Scrapy抓取AJAX页面参数中的信息?

  26. 26

    如何用参数搜索数字?

  27. 27

    如何更改参数htaccess

  28. 28

    如何使用Selenium(Java)更改网页中的语言?

  29. 29

    如何使用Selenium和Python更改DOM中的属性值

热门标签

归档