【发布时间】:2018-03-05 07:57:01
【问题描述】:
我想从一个站点中删除多个页面。模式如下:
https://www.example.com/S1-3-1.htmlhttps://www.example.com/S1-3-2.htmlhttps://www.example.com/S1-3-3.htmlhttps://www.example.com/S1-3-4.htmlhttps://www.example.com/S1-3-5.html。
我尝试了三种方法来抓取所有这些页面一次,但每种方法都只抓取第一页。我在下面显示代码,任何人都可以检查并告诉我问题是什么,将不胜感激。
===============method 1====================
import requests
for i in range(5): # Number of pages plus one
url = "https://www.example.com/S1-3-{}.html".format(i)
r = requests.get(url)
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})
===============method 2=============
import urllib2,sys
from bs4 import BeautifulSoup
for numb in ('1', '5'):
address = ('https://www.example.com/S1-3-' + numb + '.html')
html = urllib2.urlopen(address).read()
soup = BeautifulSoup(html,'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})
=============method 3==============
import requests
from bs4 import BeautifulSoup
url = 'https://www.example.com/S1-3-1.html'
for round in range(5):
res = requests.get(url)
soup = BeautifulSoup(res.text,'html.parser')
results = soup.find_all('div', attrs={'class':'product-item item-template-0 alternative'})
paging = soup.select('div.paging a')
next_url = 'https://www.example.com/'+paging[-1]['href'] # paging[-1]['href'] is next page button on the page
url = next_url
我检查了一些答案并检查了,但这不是循环问题,请检查下图,它只是第一页结果。真的是我烦了好几天 please see photo:only first page results, results picture 2
【问题讨论】:
-
在
method 1中,将导入放在顶部并缩进soup = BeautifulSoup(r.text, 'html.parser')和后续行以在 for 循环中执行