我当时是通过PyCharm CE 2018.3.4在Python中制作脚本的,但是当我运行此脚本时,它永远不会显示结果,也永远不会结束。是因为PyCharm还是因为脚本。
import requests
from bs4 import BeautifulSoup
def trade_spider(max_pages):
page = 1
while page <=1:
url = "https://www.ebay.com/sch/i.html?_from=R40&_nkw=car&_sacat=0&_pgn="+str(page)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text,"html.parser")
for link in soup.findAll('a',{'class' :'item-name' }):
href = link.get('href')
title = link.string
print(href)
print(title)
trade_spider(2)
答案 0 :(得分:0)
while循环的主要声明是:while page <=1:
,但它永远不会增加,“ page”值始终为1。如果您希望它抓取2页,就像您要尝试的那样,我相信它应该像这样:
def trade_spider(max_pages):
page = 1
#Loop until page number equals max_pages value
while page <= max_pages:
url = "https://www.ebay.com/sch/i.html?_from=R40&_nkw=car&_sacat=0&_pgn="+str(page)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text,"html.parser")
for link in soup.findAll('a',{'class' :'item-name' }):
href = link.get('href')
title = link.string
print(href)
print(title)
#Increment page so it crawls next one on each iteration
page+=1
答案 1 :(得分:0)
首先,您有一个无限循环:
page = 1
while page <= 1:
# Code in which page never changes
page
总是 1
,因此您无法退出循环。
对于不打印任何内容,您不断从该站点获取第一页。结果的简单print
显示该页面上没有class
个条目。因此,没有什么可打印的。
尝试以下方法:
for page in range(1, max_pages+1):
url = "https://www.ebay.com/sch/i.html?_from=R40&_nkw=car&_sacat=0&_pgn="+str(page)
答案 2 :(得分:0)
这是一个代码问题。您将页面设置为1,并且永不递增该值。因此,while循环永远不会结束。