Python 如何将列表元素中的所有单词作为变量
我有以下程序,在其中我试图将元素列表传递给连续的Google搜索:Python 如何将列表元素中的所有单词作为变量,python,string,list,Python,String,List,我有以下程序,在其中我试图将元素列表传递给连续的Google搜索: search_terms = ['Telejob (ETH)', 'Luisa da Silva','The CERN Recruitment Services'] for el in search_terms: webpage = 'http://google.com/search?q='+el) print('xxxxxxxxxxxxxxxxxxx') print(webpage) 不幸的是,我的程
search_terms = ['Telejob (ETH)', 'Luisa da Silva','The CERN Recruitment Services']
for el in search_terms:
webpage = 'http://google.com/search?q='+el)
print('xxxxxxxxxxxxxxxxxxx')
print(webpage)
不幸的是,我的程序并没有获取每个列表项中的所有单词,而是只获取第一个单词,这给了我以下输出:
http://google.com/search?q=Telejob (ETH)
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Luisa da Silva
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The CERN Recruitment Services
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The Swiss National Science Foundation
尽管您可以看到整个项目,每个单词都被添加到上面的搜索中,但当我验证链接时,它将作为元素仅连接每个项目的第一个单词,如下所示:
http://google.com/search?q=Telejob
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Luisa
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The
我做错了什么?将每个列表项中的所有单词连接到谷歌搜索的解决方案是什么
谢谢我相信您的问题在于url编码 允许在“%20”放置的URL中使用空格 尝试将链接更改为 这一行:
webpage = 'http://google.com/search?q='+el)
应使用%20细木工进行拆分和连接:
webpage = 'http://google.com/search?q='+'%20'.join(el.split()))
您可以在python3中使用。对于python2,您可以使用
这两个答案都不能解决基本问题:您需要将整个字符串编码为url 我选择了: 请注意,
()
也会被编码,其他可能妨碍查询的奇怪字符也会被编码
在您的情况下,它将是:
webpage = 'http://google.com/search?q=' + urllib.quote(el))
Py3中的等效值:
from urllib import parse
for term in search_terms:
print(parse.quote(term))
所以
问题是URL需要进行百分比编码,URL中有一些具有特殊含义的字符,例如:
:转到页面中的某个位置#
:我想你知道这个是干什么的/
quote()
来解决这个问题,只需记住:
用于Python2urllib.quote()
用于Python3url.parse.quote()
来自urllib.parse导入引号
引号(“/bar/will/stay/impact”)
#“/bar/将/保留/完整”
引号('/bar/wont/stay/untain',safe='')
#“%2Fbars%2不会保持%2Fbars%2Fbars完整”#实际上,所有内容都将在此处进行编码
引用(“()ñ´ç”)
#“%28%29%C3%B1%C2%B4%20%C3%A7”
因此,您现在的代码是:
search_terms = ['Telejob (ETH)', 'Luisa da Silva','The CERN Recruitment Services']
for el in search_terms:
webpage = 'http://google.com/search?q='+quote(el)
print('xxxxxxxxxxxxxxxxxxx')
print(webpage)
由于search\u terms
可能包含quote('something')
无法转义的其他字符,因此必须使用其安全参数:
search_terms = ['Telejob (ETH)', 'Luisa da Silva','The CERN Recruitment Services']
for el in search_terms:
webpage = 'http://google.com/search?q='+quote(el, safe='')
print('xxxxxxxxxxxxxxxxxxx')
print(webpage)
最后一个,输出:
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Telejob%20%28ETH%29
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Luisa%20da%20Silva
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The%20CERN%20Recruitment%20Services
我建议您查看:有关更多信息(请参阅?a
#
字符!)谷歌查询的格式为,因此您应该将查询的格式如下:
search_terms = ["Telejob (ETH)", "Luisa da Silva","The CERN Recruitment Services"]
for search_term in search_terms:
query = "+".join(search_term.split())
url = "http://google.com/search?q=" + query
看见不同的语言,相同的问题,相同的解决方案。回溯(最后一次调用):文件“C:/Users/SK/PycharmProjects/untitled/other_temperase.py”,第13行,打印(urllib.quote(el))AttributeError:module'urllib'没有Py3的属性'quote'@skitel,您需要
从urllib导入parse
并使用parse.quote()
代替或使用,如Evans Murithiexplained@skeitel问题是,在Python3中,它不是urllib.quote()
,而是url.parse.urlencode()
,尽管urllib.parse.quote()
仍然可以在Py3中工作。。。我的意思是urllib.parse.quote()
,我很困惑我是新来的。在上面Evans Murithi的urllib上使用此方法的缺点是什么?我的解决方案专门处理空间。它的覆盖范围比URL库解决方案小,但不需要导入。。。我只是直接回答这个问题,没有更多的背景。。。根据询问者的需要,任何一个答案都可能是正确的。我是新来的。与下面JacobIRR描述的联合方法相比,使用这种方法有什么好处?假设字符串中有特殊字符ñ!
,使用串联+
将不会对其进行编码urllib
将其编码为q=%C3%B1%C2%B4%C3%A7
search_terms = ['Telejob (ETH)', 'Luisa da Silva','The CERN Recruitment Services']
for el in search_terms:
webpage = 'http://google.com/search?q='+quote(el, safe='')
print('xxxxxxxxxxxxxxxxxxx')
print(webpage)
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Telejob%20%28ETH%29
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=Luisa%20da%20Silva
xxxxxxxxxxxxxxxxxxx
http://google.com/search?q=The%20CERN%20Recruitment%20Services
search_terms = ["Telejob (ETH)", "Luisa da Silva","The CERN Recruitment Services"]
for search_term in search_terms:
query = "+".join(search_term.split())
url = "http://google.com/search?q=" + query