2016-05-01 67 views
0

我用我的網絡抓取工具暫時停止工作。 代碼直到現在:靈活的網頁抓取工具

import requests 
from bs4 import BeautifulSoup 

def search_spider(max_pages): 
    page = 1 
    while page <= max_pages: 
     url = 'https://www.thenewboston.com/search.php?type=1&sort=pop&page=' + str(page) 
     source_code = requests.get(url) 
     plain_text = source_code.text 
     soup = BeautifulSoup(plain_text, "html.parser") 
     for link in soup.findAll('a', {'class': 'user-name'}): 
      href = "https://www.thenewboston.com/" + link.get('href') 
      print(href) 
search_spider() 

這是從YT教程的例子。有沒有人知道我有什麼需要改變代碼,當我沒有像1,2,3等網站結尾...但像021587,0874519,NI875121等各種數字? anker網站域總是相同的,但結局並不像本例中那樣簡單。所以我需要知道的是如何插入一個變量爲str(頁面),從我的計算機上的.txt文件(幾百)或從列表中獲取網站結束數字時,我複製並粘貼到我的碼?當然,到達列表的末尾時Python應該停止。

因爲我很瞭解python,所以我暫時不知道如何解決這個問題。如果您需要更多信息,請告訴我。感謝您的迴應!

弗洛

回答

0

好吧,如果你有,你要訪問的,而不是某個範圍的數頁的列表,你可以這樣做:

pages = ['021587', '0874519', 'NI875121'] 

for page in pages: 
    url = 'http://example.com/some-path/' + str(page) 

從文件中讀取:

with open('filename.txt') as f: 
    contents = f.read() 

假設你的網頁是由空格分隔,然後你可以運行

pages = contents.split() 

退房documentation for str.split()

+0

太棒了,它完美的作品!謝謝! 還有一個問題:如上所述,是否還可以讓str(頁面)引用.txt文檔?如果我想擴展我的網站搜索,而不是將數百個網站結尾複製到我的代碼中,那將更容易。 –

+0

對不起,真的很晚回覆。你可能已經知道了,但爲了以防萬一,我編輯了我的答案。 –

+0

你以爲我已經知道了。但無論如何感謝您編輯您的答案,可能對其他用戶很有趣。 –