【发布时间】:2017-03-21 04:35:01
【问题描述】:
我想从每个页面中抓取链接并转到下一页并执行相同的操作。这是我从第一页抓取链接的代码:
import requests
from bs4 import BeautifulSoup
page='https://www.booli.se/slutpriser/goteborg/22/?objectType=L%C3%A4genhet'
request = requests.get(page)
soup = BeautifulSoup(request.text,'lxml')
links= soup.findAll('a',class_='search-list__item')
url=[]
prefix = "https://www.booli.se"
for link in links:
url.append(prefix+link["href"])
我在前三页尝试了以下操作,但没有成功。
import re
import requests
from bs4 import BeautifulSoup
url=[]
prefix = "https://www.booli.se"
with requests.Session() as session:
for page in range(4):
response = session.get("https://www.booli.se/slutpriser/goteborg/22/?
objectType=L%C3%A4genhet&page=%f" % page)
soup = BeautifulSoup(response.content, "html.parser")
links= soup.findAll('a',class_='search-list__item')
for link in links:
url.append(prefix+link["href"])
【问题讨论】:
-
发生了什么错误或什么不起作用?
-
你只做了几次。如果你想把所有的页面都刮掉,你需要反复做,只要找到新的至少一个新的
url。 -
这只是一个小规模的例子。如果我能让它在 3 页上正常工作,我可以稍后运行它以获得更大的循环。问题就在这里,我希望它移动到下一页,但它没有这样做。使用 requests.Session() 作为会话:对于范围内的页面(4): response = session.get("booli.se/slutpriser/goteborg/22? objectType=L%C3%A4genhet&page=%f" % page) soup = BeautifulSoup(response.content, "html.parser") 我的跳转到下一页的循环没有通过。
-
所有 4 页对我来说似乎都是一样的。
-
response = session.get("https://www.booli.se/slutpriser/goteborg/22/? objectType=L%C3%A4genhet&page=%f" % page)将此行更改为response = session.get("https://www.booli.se/slutpriser/goteborg/22/? objectType=L%C3%A4genhet&page=" + str(page))
标签: web-scraping beautifulsoup