2017-05-30 19 views
0

私のクローラが私の.txtファイルに保存されているものからWebから取得するリンクを検証したいと思います。クローラがWebからリンクを取得した後、それは私の.txtファイルに( 'a')を追加します。ただし、リンクが既に自分の.txtファイルに存在する場合は、( 'w')を付けて追加したいと思います。どのように私はそれを行うことができますか?Python - .txtファイルの検証、書き込み、追加

def spider(targetname, DOMAIN, g_data): 
    for item in g_data: 
     try: 
      name = item.find_all("strong", {"class": "fullname show-popup-with-id "})[0].text 
      username = item.find_all("span", {"class": "username u-dir"})[0].text 
      post = item.find_all("p", {"class": "TweetTextSize TweetTextSize--normal js-tweet-text tweet-text"})[0].text 
      replies = item.find_all("span", {"class": "u-hiddenVisually"})[3].text 
      retweets = item.find_all("span", {"class": "u-hiddenVisually"})[4].text 
      likes = item.find_all("span", {"class": "u-hiddenVisually"})[5].text 
      retweetby = item.find_all("a", {"href": "/"+targetname})[0].text 
      datas = item.find_all('a', {'class':'tweet-timestamp js-permalink js-nav js-tooltip'}) 
      for data in datas: 
       link = DOMAIN + data['href'] 
       date = data['title'] 
      append_to_file(crawledfile, name, username, post, link, replies, retweets, likes, retweetby, date) 
     except: 
      pass 


`def append_to_file(path, name, username, post, link, replies, retweets, likes, retweetby, date): 
    with open(path, 'a') as file: 
     try: 
      file.write("Name: "+ name + '\n') 
     except: 
      print("Name: --Currently unavailable--" + '\n') 
     try: 
      file.write("Username: "+ username + '\n') 
     except: 
      print("Username: --Currently unavailable--" + '\n') 
     try: 
      file.write("Post: "+ post + '\n') 
     except: 
      print("Post: --Currently unavailable--" + '\n') 
     try: 
      file.write("post's link: "+ link.strip() + '\n') 
     except: 
      print("post's link: --Currently unavailable--" + '\n') 
     try: 
      file.write("Replies: "+ replies.strip() + '\n') 
     except: 
      print("Replies: --Currently unavailable--" + '\n') 
     try: 
      file.write("Retweet: "+ retweets.strip() + '\n') 
     except: 
      print("Retweet: --Currently unavailable--" + '\n') 
     try: 
      file.write("Likes: "+ likes.strip() + '\n') 
     except: 
      print("Likes: --Currently unavailable--" + '\n') 
     try: 
      if(username != "@" + targetname): 
       file.write("Retweeted By: " + retweetby.strip() + '\n') 
     except: 
      file.write("Retweeted By: --Currently unavailable--" + '\n') 
     try: 
      file.write("Date: " + date + '\n') 
     except: 
      file.write("Date: --Currently unavailable--" + '\n') 
     file.write("" + '\n')` 




Name: Donald J. Trump Username: @realDonaldTrump Post: I look forward to paying my respects to our brave men and women on this Memorial Day at Arlington National Cemetery later this morning. post's link: https://twitter.com/realDonaldTrump/status/869170615881793536 Replies: 14,333 replies Retweet: 13,492 retweets Likes: 74,645 likes Date: 5:36 AM - 29 May 2017 

Name: Donald J. Trump Username: @realDonaldTrump Post: Today we remember the men and women who made the ultimate sacrifice in serving. Thank you, God bless your families & God bless the USA! post's link: https://twitter.com/realDonaldTrump/status/869170351049240576 Replies: 8,827 replies Retweet: 33,541 retweets Likes: 123,112 likes Date: 5:35 AM - 29 May 2017 
+0

私はあなたに良い答えを提供することができるように 'append_to_file'メソッドを表示することをお勧めします。ただし、検索されたリンクがテキストファイルに存在するかどうかを確認する必要がある場合は、 'リンクが開いている場合( 'your_file.txt')read(): #link present else: #link not present' –

+0

私は正直なところ混乱しています。 "ただし、リンクがすでに私の.txtファイルに存在する場合、私はそれを更新したいと思っています。 – EyuelDK

+0

@AdeelAhmad私は私のappend_to_fileメソッドを投稿しました – NewbieCoder

答えて

0

私が正しくあなたの文を解釈する場合は、あなただけのリンクはすでにファイルまたはない存在する場合、条件に基づいて、文字「A」またはテキストファイルには「w」を追加する必要があります。このためには、次のコードを使用することができます:

def append_to_file(path, name, username, post, link, replies, retweets, likes, retweetby, date): 
    with open(path, 'a') as file: 
     if link.strip() in file.read(): 
      to_append = 'a' 
     else: 
      to_append = 'w' 
     try: 
      file.write("Name: " + name + to_append + '\n') 
     except: 
      print("Name: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Username: " + username + to_append + '\n') 
     except: 
      print("Username: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Post: " + post + to_append + '\n') 
     except: 
      print("Post: -- Currently unavailable--" + '\n') 
     try: 
      file.write("post's link: " + link.strip() + to_append + '\n') 
     except: 
      print("post's link: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Replies: " + replies.strip() + to_append + '\n') 
     except: 
      print("Replies: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Retweet: " + retweets.strip() + to_append + '\n') 
     except: 
      print("Retweet: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Likes: " + likes.strip() + to_append + '\n') 
     except: 
      print("Likes: -- Currently unavailable--" + '\n') 
     try: 
      if(username != "@" + targetname): 
       file.write("Retweeted By: " + 
          retweetby.strip() + to_append + '\n') 
     except: 
      file.write(
       "Retweeted By: -- Currently unavailable--" + '\n') 
     try: 
      file.write("Date: " + date + to_append + '\n') 
     except: 
      file.write("Date: -- Currently unavailable--" + 
         to_append + '\n') 
     file.write("" + '\n') 
+0

ありがとうございました! 「好き」と「リツイート」も!私はすでにそれを理解しました! – NewbieCoder

関連する問題