如何在Python中从基于GET的参数解析/提取数据?

时间:2018-02-11 05:53:20

标签: python parsing urlparse

我有超过一千个链接都有基于GET的参数。

https://us.webuy.com/search/index.php/"><script>prompt(/XSS/)</script>
https://www.densuke.biz/help
http://www.ntrcars.co.uk/email.php?subject=%22%3E%3Csvg/onload=alert(/XSS/)%3E
http://www.americanexpress.com/thailand/en/leave_country.shtml?url=javascript:alert`XSS`
https://share.trin.cam.ac.uk/sites/public/Pages/PageNotFoundError.aspx?FollowSite=0&SiteName='-confirm(/XSS/)-'
http://www.rockwellautomation.com/global/news/the-journal/detail.page?docid=dfb8c8ba15e7cf2c599fc321b8e2b98e&G11N/Locale=en&geography=%22%3E%3Cimg%20src=x%20onerror=prompt%28/XSS/%29%3E&content_type=magazine&pagetitle=\n
https://www.ifishillinois.org/profiles/display_lake.php?waternum=1/*-/*`/*\`/*'/*"/**/--></script><svg/onload=;prompt(/XSS/);>00116
http://tools.xaa.su/htaccess/
http://www.wa.lk/realstate/product_display.php?id=%22%22;%3C%2Fscript%3E%3Cscript%3Eprompt(%2FXSS%2F)%3C%2Fscript%3E%3C%22

我需要提取包含字符串'XSS'的所有数据并将它们放入列表中。

"><script>prompt(/XSS/)</script>
%22%3E%3Csvg/onload=alert(/XSS/)%3E
javascript:alert`XSS`
'-confirm(/XSS/)-'

依旧......

我试图使用urlparse,但在任何地方都看不到这种类型的函数

#from urllib.parse import urlparse
#
#url = 'http://user:pwd@NetLoc:80/path;param?query=arg#frag'
#parsed = urlparse(url)
#print('scheme  :', parsed.scheme)
#print('netloc  :', parsed.netloc)
#print('path    :', parsed.path)
#print('params  :', parsed.params)
#print('query   :', parsed.query)
#print('fragment:', parsed.fragment)
#print('username:', parsed.username)
#print('password:', parsed.password)
#print('hostname:', parsed.hostname)
#print('port    :', parsed.port)

我认为

#print('params  :', parsed.params)

是我能得到的最接近的,但是,我也不想要参数。

1 个答案:

答案 0 :(得分:0)

示例中的某些网址有效(或至少有条件有效)。您可以通过urlparse()parse_qs()

的组合访问感兴趣的内容
from urllib.parse import urlparse, parse_qs
from itertools import chain

pieces = list(chain(*[
              [item for item in chain(*parse_qs(urlparse(url).query).values()) 
               if 'XSS' in item] 
               for url in urls]))
#['"><svg/onload=alert(/XSS/)>', 
# 'javascript:alert`XSS`', 
# "'-confirm(/XSS/)-'", 
# '"><img src=x onerror=prompt(/XSS/)>']

某些网址(例如,第一个网址)无效。目前尚不清楚你想从中得到什么。如果您提供预期结果的明确定义,您可能会得到更多帮助。