如何仅打印字符串中的特定单词

时间:2019-02-19 02:23:55

标签: python python-3.x

我只想从字符串中打印所有以“ / watch”开头的“单词”,然后将所有“ / watch ...”添加到列表中。预先感谢!

# Take a random video from my youtube recommended and add it to watch2gether
import requests
from bs4 import BeautifulSoup as BS
import time
import random
# Importing libraries
num = random.randint(1, 20)
recommended = requests.get('https://www.youtube.com/results?search_query=svenska+youtube+klassiker&sp=EgIQAQ%253D%253D')
recommended_soup = BS(recommended.content, features='lxml')
recommended_vid = recommended_soup.find_all('a', href=True)

for links in recommended_vid:
    print(links['href'])

输出:

/
//www.youtube.com/upload
/
/feed/trending
/feed/history
/premium
/channel/UC-9-kyTW8ZkZNDHQJ6FgpwQ
/channel/UCEgdi0XIXXZ-qJOFPf4JSKw
/gaming
/feed/guide_builder
/watch?v=PbVt_O1kFpA
/watch?v=PbVt_O1kFpA
/user/thedjdoge
/watch?v=1lcksCjvuSs
/watch?v=1lcksCjvuSs
/channel/UCn-puiDqHNMhRvq6wsU3nsQ
/watch?v=AKj_pxp2l1c
/watch?v=AKj_pxp2l1c
/watch?v=QNnEqTQD6DM
/watch?v=QNnEqTQD6DM
/channel/UCDuOAYzgiZzqqlXd2G3GAwg
....

也许我可以使用.remove或.replace之类的东西,不知道该怎么做,所以我感谢所有帮助。

4 个答案:

答案 0 :(得分:1)

是的,肯定是在这里过大了。这是 filter

的完美用例
unique()

请注意,它会返回一个生成器,因此,如果需要列表,请将其包装在列表中。

http://book.pythontips.com/en/latest/map_filter.html很好,如果您需要更多有关执行此类数据清除功能的信息。如果您真的需要数据清理,可以考虑使用熊猫。它具有陡峭的学习曲线,但是对于复杂的数据清理来说却是很棒的。

答案 1 :(得分:0)

这应该有助于您找到所有的/watch链接。

import re
pattern = re.compile(r"/watch")
# pattern = re.compile(r"/watch\?v=[a-zA-Z_0-9]{11}") -- This pattern is to find all the links as well
matches = pattern.finditer(<your_string>)
for m in matches:
    print(m) #will print all the locations at which /watch occurs

您可以收集列表中的所有URL并继续。祝你好运!

答案 2 :(得分:0)

看看您的代码,带有str.startswith()的简单if语句就足以获得所需的内容。

假设links['href']包含str,则:

for links in recommended_vid:
    href = links['href']            # I think 'href' will be of type 'str'
    if href.startswith('/watch'):
        print(href)

注意:.startswith()仅在/watch确实位于href的开头时才有效;您还可以尝试if '/watch' in href:,如果该字符串出现在href中的任何位置,它将匹配。

答案 3 :(得分:0)

您可以执行以下操作

for links in recommended_vid:
    if "/watch" in links[href]:
        print(link[href])