Python Selenium Web 驱动程序在 Url 中传递整数变量

Python Selenium Web Driver Pass Integer Variable in Url

我正在使用 Python \ Selenium \ Chrome 驱动程序来执行网络抓取。我想将一个 INT 变量 (id) 传递给 URL - 我该怎么做?我已经尝试了以下所有但此行出现 Python 错误:

  id = 2000
  
  # Part 1: Customer:
  #urlg = 'https://mythirteen.co.uk/customerRest/show/?id=2000' working but need to pass variable
  #urlg = 'https://mywebsite.com/customerRest/show/?id=' %(id)
  #urlg = 'https://mywebsite.com/customerRest/show/?id={id}' 
  # urlg = 'https://mywebsite.com/customerRest/show/?id='.format(id)
  # urlg = 'https://mywebsite.com/customerRest/show/?id='+id
  # urlg = "https://mywebsite.com/customerRest/show/?id=".format(id)
  # urlg = 'https://mywebsite.com/customerRest/show/?id=' % id
  driver.get(urlg)

我收到如下错误:

TypeError: not all arguments converted during string formatting

虽然我知道它不是字符串 - id 是 INT。

最终,我将需要循环并每次增加 id + 1,但现在我只想能够传递实际变量。

如果您想连接字符串和整数,对于大多数方法,您必须使用 str(id).

将整数转换为字符串

不然我很喜欢用f-strings:

urlg = f'https://mywebsite.com/customerRest/show/?id={id}'

编辑
正如@chitown88 提到的,使用 id 作为变量不是一个好主意,因为它是内部保留的。最好使用 customer_id.

之类的东西

您正在尝试的方法的问题是您基本上没有告诉它把字符串放在哪里,或者试图连接一个字符串和一个 int

所以这个 'https://mywebsite.com/customerRest/show/?id=' %(id) 需要 'https://mywebsite.com/customerRest/show/?id=%s' %(id)

所以所有这些都会起作用:

此外,我不会使用 id 作为变量,因为它是 python 中的保留函数。让它更具描述性也更有意义:

customerId = 2000

urlg = 'https://mythirteen.co.uk/customerRest/show/?id=2000' working but need to pass variable
urlg = 'https://mywebsite.com/customerRest/show/?id=%s' %(customerId)
urlg = 'https://mywebsite.com/customerRest/show/?id=%s' %customerId
urlg = f'https://mywebsite.com/customerRest/show/?id={customerId}' 
urlg = 'https://mywebsite.com/customerRest/show/?id={}'.format(customerId)
urlg = 'https://mywebsite.com/customerRest/show/?id='+str(customerId)