为什么我的爬虫与BeautifulSoup,不显示结果?

时间:2016-01-03 13:51:42

标签: python web-crawler

这是我写的代码。

import requests
from bs4 import BeautifulSoup

def code_search(max_pages):
    page = 1
    while page <= max_pages:
        url = 'http://kindai.ndl.go.jp/search/searchResult?searchWord=朝鲜&facetOpenedNodeIds=&featureCode=&viewRestrictedList=&pageNo=' + 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-link'}):
            href = link.get('href')
            page += 1

code_search(2)

我的pycharm版本是pycharm-community-5.0.3 for mac。

它只是说:

"Process finished with exit code 0"

但是如果我相应地编写了代码,应该有一些结果......

请帮帮我吧!

2 个答案:

答案 0 :(得分:0)

您没有print个陈述 - 因此程序不会输出任何内容。

添加一些打印语句。例如,如果输出链接,请执行以下操作:

for link in soup.findAll('a', {'class': 'item-link'}):
        href = link.get('href')
        print(href)
        page += 1

答案 1 :(得分:0)

答案取决于您希望通过网络抓取工具实现的目标。第一个观察是没有任何印刷品。

以下代码打印URL和网址上的所有链接。

import requests
from bs4 import BeautifulSoup

def code_search(max_pages):
    page = 1
    while page <= max_pages:
        url = 'http://kindai.ndl.go.jp/search/searchResult?searchWord=朝鲜&facetOpenedNodeIds=&featureCode=&viewRestrictedList=&pageNo=' + str(page)
        print("Current URL:", url)
        source_code = requests.get(url)
        plain_text = source_code.text
        soup = BeautifulSoup(plain_text, 'html.parser')
        for link in soup.findAll('a', {'class': 'item-link'}):
            href = link.get('href')
            print("Found URL:", href)
            page += 1

code_search(2)

也可以让方法返回所有找到的URL,然后打印结果:

import requests
from bs4 import BeautifulSoup

def code_search(max_pages):
    page = 1
    urls = []
    while page <= max_pages:
        url = 'http://kindai.ndl.go.jp/search/searchResult?searchWord=朝鲜&facetOpenedNodeIds=&featureCode=&viewRestrictedList=&pageNo=' + 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-link'}):
            href = link.get('href')
            urls.append(href)
            page += 1
    return urls

print("Found URLs:", code_search(2))