2016-01-26 3 views
-1

Код проходит через страницу, но не полностью проходит через всю страницу, останавливаясь обычно на 6 или 7 гонке на собрании в гонке. Может кто-нибудь предложить, почему BS здесь не работает. является URL http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549не удается очистить всю страницу

from urllib import urlopen 
from bs4 import BeautifulSoup 
baseURL = 'http://www.gbgb.org.uk/resultsMeeting.aspx?id=135549' 
html = urlopen(baseURL) 
bsObj = BeautifulSoup(html, 'lxml') 

nameList = bsObj.findAll("div", {"class": "resultsBlockHeader"}) 
for i in nameList: 


nameList1 = i.findAll("div", {"class": "track"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "date"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "datetime"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "grade"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "distance"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList1 = i.findAll("div", {"class": "prizes"}) 
for j in nameList1: 
    print(j.get_text()) 

nameList = bsObj.findAll("div", {"class": "resultsBlock"}) 
for i in nameList: 

nameList2 = i.findAll("li", {"class": "trap"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "first essential fin"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "essential greyhound"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "sp"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "timeSec"}) 
for j in nameList2: 
    print(j.get_text()) 

nameList2 = i.findAll("li", {"class": "timeDistance"}) 
for j in nameList2: 
    print(j.get_text()) 

питон веб-соскоб BS4

+0

Проблема с вашей связью, попробуйте использовать высокоскоростной интернет –

ответ

0

я не мог получить свой код работает, как показано. Однако, используя

from urllib.request import urlopen 

я смог запустить остальную часть кода просто отлично, после исправления каких-либо отступов. Обратите внимание на .request.

Я вижу 13 результатов гонки на веб-странице, когда я пользуюсь браузером, и я получаю 13 результатов гонки, используя ваш код BS.

Ваш код BS работает. Поэтому нам просто нужно рассмотреть любые проблемы до вызова BS. И единственной возможной причиной возникновения проблемы является html = urlopen(baseURL). Возможно, вы имеете дело с некоторыми проблемами с подключением.

Я предполагаю, что вы дважды проверяете, что публично представлено на веб-странице, верно? Я подозреваю, что количество гонок меняется со временем, поэтому получение 6 или 7 результатов может быть всем из них.

+0

Привет, hfuhruhurr.Много спасибо за ответ, и я думаю, что вы должны быть правы в том, что проблема вверху, однако, когда я заменяю выше свой код urllib, я получаю «import error no module named request». Когда я смотрю в настройках pycharms, он сообщает мне, что запрос установлен, поэтому я попробовал ноутбук ++, но получил то же сообщение. Я собираюсь переустановить запрос, у вас есть другие предложения, спасибо Луне – moonshadow

+0

Я бы разобрался, чтобы вывести проблему. То есть, просто запустите сеанс python из окна терминала. Введите 'from urllib.request import urlopen' и нажмите return. Если у вас нет проблем, то это что-то с установкой PyCharms/Notepad ++. (Примечание: код для функции 'urlopen' находится в файле с именем« request.py »где-то в вашей установке. Вы не можете использовать' urlopen' без него.) – hfuhruhurr

+0

Насколько это возможно, это ваш файл кода с именем «urllib .py "? Я обнаружил, что вам не следует использовать «csv.py» в качестве имени файла, если вы используете модуль «csv» внутри. Я думаю, Python считает, что ваш csv.py - это модуль csv, который нужно вызвать. – hfuhruhurr

0

Код работает для меня после исправления нескольких мелких проблем с отступом.

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