2015-07-01 2 views
1

Я пытаюсь создать программу в Python 2.7 с BeautifulSoup, который будет извлекать все URL-адреса профиля с этой страницы и последующих страницШтука с этим веб-скребок

http://www.reaa.govt.nz/Pages/PublicRegisterSearch.aspx?pageNo=1&name=a * & OrgName = & место = & licenceNo = & itemsPerPage = 100 & sortExpression = 2

Я уже давно сражаюсь с этой программой, и она до сих пор не работает. Я думаю, что я запутался в селекторе CSS, но я не уверен, что еще попробовать.

Пожалуйста посоветуйте ... Я новичок в программировании и питона

import requests 
from bs4 import BeautifulSoup 

def re_crawler(pages): 
    page = 1 
    while page <= pages: 
     url = 'http://www.reaa.govt.nz/Pages/PublicRegisterSearch.aspx?pageNo=' + str(page) + '&name=a*&orgName=&location=&licenceNo=&itemsPerPage=100&sortExpression=2' 
     code = requests.get(url) 
     text = code.text 
     soup = BeautifulSoup(text) 
     for link in soup.select('tr.alternate td a[id*=ct100_]'): 
      href = link.get('href') 
      print (href) 
     page += 1 

re_crawler(2) 
+1

Я вижу в html, что id начинается с ctl00_, но в вашем коде это ct100_, может быть, ошибка опечатки? – Birei

+0

Спасибо, что заметили это, Бирей. Я не заметил, что это был ctl00_, и это тоже не сработало. Цените свою помощь :) –

ответ

1

Используйте это вместо этого?

from urllib import urlopen 
from bs4 import BeautifulSoup 

def re_crawler(pages): 
    page = 1 
    while page <= pages: 
     url = 'http://www.reaa.govt.nz/Pages/PublicRegisterSearch.aspx?pageNo=' + str(page) + '&name=a*&orgName=&location=&licenceNo=&itemsPerPage=100&sortExpression=2' 
     code = urlopen(url) 
     soup = BeautifulSoup(code) 
     for link in soup.select('tr.alternate td a[id*=ctl00_]'): 
      href = link.get('href') 
      print (href) 
     page += 1 

re_crawler(2) 
+0

Это работало как шарм !! Большое вам спасибо Рубена. Не могли бы вы объяснить, почему это не сработало с запросами, но это было с urlopen? Как ученик, мне любопытно узнать :) Спасибо еще раз, очень! –

+1

На самом деле бирей получил это правильно. Все, что я сделал, это немного упростить код. Если вы исправите бит ctl00, запросы тоже будут работать. –

+0

Я пробовал этот Рувим. Не работал с моим кодом (запросами). Это сработало с вашей стороны? –

Смежные вопросы