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)
我正在使用 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)