2015-07-28 50 views
0

我有一個包含某些RSS提要的URL的文本文件。我想知道哪些網址有一個標題或描述(或任何其他標籤)包含特定字符串(單詞列表)。僅當標題或描述包含%字符串時才獲取URL,標題和描述%

至於現在,我能夠得到的網址,標題和標題(以及其他)。不確定如何繼續。我想我會用正則表達式來檢查標籤。如果我檢查了網址標題並找到了字匹配,那麼我將如何再次檢索該網址? URL需要連接到標籤,就像.csv一樣。有點困惑在這裏。也許有人可以向正確的方向射擊我?

我至今路徑:

import requests 
from bs4 import BeautifulSoup 

rssfeed = open('input.txt') 
rss_source = rssfeed.read() 
rss_sources = rss_source.split() 

i=0 
while i<len(rss_sources): 
    get_rss = requests.get(rss_sources[i]) 
    rss_soup = BeautifulSoup(get_rss.text, 'html.parser') 
    rss_urls = rss_soup.find_all('link') 
    i=i+1 

for url in rss_urls: 
     rss_all_urls = url.text 
     open_urls = requests.get(rss_all_urls) 
     target_urls_soup = BeautifulSoup(open_urls.text, 'html.parser') 
     urls_titles = target_urls_soup.title 
     urls_headlines = target_urls_soup.h1 
     print (rss_all_urls, urls_titles, urls_headlines) 
+0

在詞匹配後你想做什麼? – Casey

+0

基本上我想要我自己的飼料。所以我只想在標題或說明中找到那些有興趣關鍵字的網址。例如:我從NYTimes獲取RSS Feed,並只需要那些談論「社交媒體」,「facebook」,「twitter」等的文檔(URL)...... – eLudium

+0

好的,那麼爲什麼您需要檢索匹配後再次訪問網址?逐行評論此代碼以描述發生的事情可能會有所幫助 – Casey

回答

0

所以,你想有網址的數組。 該數組應該根據一定的條件包含特定的URL: - 如果包含在一個陣列上的琴絃的一個URL匹配的標題

所以首先你需要你的數組:

titlesToMatch = ['title1', 'title2', 'title3'] 
finalArrayWithURLs = [] 

那麼當你有你:rss_all_urls,urls_titles,urls_headlines您要包括在finalArrayWithURLs只是那些在titleToMatch

for url in rss_urls: 
    rss_all_urls = url.text 
    open_urls = requests.get(rss_all_urls) 
    target_urls_soup = BeautifulSoup(open_urls.text, 'html.parser') 
    urls_titles = target_urls_soup.title 
    urls_headlines = target_urls_soup.h1 

    if any(item in urls_titles for item in titlesToMatch): 
     finalArrayWithURLs.push(url) 

之後,你會有這樣的匹配標題的一個的人一個URLØ finalArrayWithURLs只是那些標題與titlesToMatch數組標題相匹配的那些URL