我有以下蜘蛛:
start_urls = ['https://www.youtube.com/user/ZaidAliT/videos']
def parse_question(self, response):
yield {
'title': response.css('h1 span::text').extract()[0],
'views': response.css('div .watch-view-count::text').extract()[0],
'link': response.url,
}
目前,当我解析时,我会在response.url
中获得该频道的所有链接,如下所示:
"link": "https://www.youtube.com/watch?v=qEybDk00rJE"
我如何修改这个,以便我只从网址中提取qEybDk00rJE
部分?
答案 0 :(得分:3)
尝试
'link'=response.url.split('=')[-1]
这将返回最后一个' ='
之后的所有内容答案 1 :(得分:2)
我想你想要完整的查询,如果你想解析一个url,请使用urlparse:
In [1]: import urlparse
In [2]: url = "https://www.youtube.com/watch?v=qEybDk00rJE"
In [3]: parsed = urlparse.urlparse(url)
In [4]: parsed
Out[4]: ParseResult(scheme='https', netloc='www.youtube.com', path='/watch', params='', query='v=qEybDk00rJE', fragment='')
In [5]: parsed.query
Out[5]: 'v=qEybDk00rJE'
如果您真的只想要=
之后的内容,则可以拆分查询。
。