python程序未运行

时间:2019-02-22 17:02:02

标签: python

我当时是通过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)

3 个答案:

答案 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循环永远不会结束。