【发布时间】:2013-11-25 01:13:57
【问题描述】:
我正在使用以下代码来抓取网站。我尝试过的以下内容适用于网站中的页面。现在我想抓取几个这样的页面,我正在为其循环 URL,如下所示。
from bs4 import BeautifulSoup
import urllib2
import csv
import re
number = 2500
for i in xrange(2500,7000):
page = urllib2.urlopen("http://bvet.bytix.com/plus/trainer/default.aspx?id={}".format(i))
soup = BeautifulSoup(page.read())
for eachuniversity in soup.findAll('fieldset',{'id':'ctl00_step2'}):
print re.sub(r'\s+',' ',','.join(eachuniversity.findAll(text=True)).encode('utf-8'))
print '\n'
number = number + 1
以下是没有循环的正常代码
from bs4 import BeautifulSoup
import urllib2
import csv
import re
page = urllib2.urlopen("http://bvet.bytix.com/plus/trainer/default.aspx?id=4591")
soup = BeautifulSoup(page.read())
for eachuniversity in soup.findAll('fieldset',{'id':'ctl00_step2'}):
print re.sub(r'\s+',' ',''.join(eachuniversity.findAll(text=True)).encode('utf-8'))
我将 URL 中的 id 值从 2500 循环到 7000。但是有许多 id 没有任何值。所以没有这样的页面。仅当存在给定 id 的数据时,我如何跳过这些页面并抓取数据。
【问题讨论】:
标签: python python-2.7 web-scraping beautifulsoup screen-scraping