2016-10-11 101 views
-2

我創建了一個網站刮板將颳去黃頁所有信息(用於教育目的)爲什麼它跳過整個循環?

def actual_yellow_pages_scrape(link,no,dir,gui,sel,ypfind,terminal,user,password,port,type): 
print(link,no,dir,gui,sel,ypfind,terminal,user,password,port,type) 
r = requests.get(link,headers=REQUEST_HEADERS) 
soup = BeautifulSoup(r.content,"html.parser") 
workbook = xlwt.Workbook() 
sheet = workbook.add_sheet(str(ypfind)) 
count = 0 

for i in soup.find_all(class_="business-name"): 
     sheet.write(count,0,str(i.text)) 
     sheet.write(count,1,str("http://www.yellowpages.com"+i.get("href"))) 
     r1 = requests.get("http://www.yellowpages.com"+i.get("href")) 
     soup1 = BeautifulSoup(r1.content,"html.parser") 
     website = soup1.find("a",class_="custom-link") 
     try: 
      print("Acquiring Website") 
      sheet.write(count,2,str(website.get("href"))) 
     except: 
      sheet.write(count,2,str("None")) 
     email = soup1.find("a",class_="email-business") 
     try: 
      print(email.get("href")) 
      EMAIL = re.sub("mailto:","",str(email.get("href"))) 
      sheet.write(count,3,str(EMAIL)) 
     except: 
      sheet.write(count,3,str("None")) 
     phonetemp = soup1.find("div",class_="contact") 
     try: 
      phone = phonetemp.find("p") 
      print(phone.text) 
      sheet.write(count,4,str(phone.text)) 
     except: 
      sheet.write(count,4,str("None")) 
     reviews = soup1.find(class_="count") 
     try: 
      print(reviews.text) 
      sheet.write(count,5,str(reviews.text)) 
     except: 
      sheet.write(count,5,str("None")) 
     count+=1 
save = dir+"\\"+ypfind+str(no)+".xls" 
workbook.save(save) 
no+=1 
for i in soup.find_all("a",class_="next ajax-page"): 
    print(i.get("href")) 
    actual_yellow_pages_scrape("http://www.yellowpages.com"+str(i.get("href")),no,dir,gui,sel,ypfind,terminal,user,password,port,type) 

的代碼是我的刮板的上面部分。我在湯和for循環中創建了斷點,甚至沒有執行for循環的單行。沒有錯誤拋出。我試着打印1-10的數字,但它不工作,爲什麼?

謝謝

+0

可能因爲'find_all'的結果是空的?你有沒有檢查過它? – Julien

+0

因爲你迭代的內容可能是空的。 –

+0

使用'print()'來查看變量中的含義。 – furas

回答

0

答案已經發現,

我用文字visulaizer找到什麼是「r.content」我soupified,並得到一個乾淨的HTML,並通過HTML文件不見了,最後發現瀏覽器不受支持,所以我刪除了請求頭並運行代碼,終於得到我想要的

相關問題