范围循环在webscrape中不起作用

时间:2016-04-02 11:54:11

标签: python beautifulsoup

我已经在BS4中编写了一个小型的Web抓取器。我可以一次抓取一个页面的代码,这里是相关的代码。

import csv
from bs4 import BeautifulSoup
import requests
html = requests.get("http://www.gbgb.org.uk/resultsMeeting.aspx?id=129867").text
soup = BeautifulSoup(html,'lxml')

这段代码抓了一页,但我想一次刮掉多个页面(一个范围),所以我尝试像这样添加这个循环。

import csv
from bs4 import BeautifulSoup
import requests

for ace in range(129867, 129869):

 html = requests.get("http://www.gbgb.org.uk/resultsMeeting.aspx?id= {ace}").text

soup = BeautifulSoup(html,'lxml')

当我运行代码时没有任何事情发生,我甚至没有起来任何常见的含糊不清的消息,暗示出现了什么问题。可能是语法,还是别的什么。可以帮助升值。

1 个答案:

答案 0 :(得分:1)

你现在应该在循环中做所有事情。并且,您没有在网址中插入@when值,ace后面还有一个额外的空格。建立web-scraping session并使用id=方法的params关键字也是一个好主意。

修正版:

get()

请注意,此代码仍具有阻止性,它会一次处理一个页面。如果您想加快速度,请查看Scrapy网页抓取框架。