import requests
from bs4 import BeautifulSoup


def trade_spider(max_pages):
page = 0
while page <= max_pages:
    url = 'http://orangecounty.craigslist.org/search/foa?s=' + str(page * 100)
    source_code = requests.get(url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text)
    for link in soup.findAll('a', {'class':'hdrlnk'}):
        href = 'http://orangecounty.craigslist.org/' + link.get('href')
        title = link.string
        print title
        #print href
        get_single_item_data(href)
    page += 1

def get_single_item_data(item_url):
    source_code = requests.get(item_url)
    plain_text = source_code.text
    soup = BeautifulSoup(plain_text)
    for item_name in soup.findAll('section', {'id':'postingbody'}):
        print item_name.string



trade_spider(1)


我正在尝试爬craigslist(用于练习),尤其是http://orangecounty.craigslist.org/search/foa?s=0。我现在将其设置为打印条目的标题和条目的描述。问题是,尽管为列出的每个对象正确打印了标题,但是对于大多数对象,即使有明确的说明,其说明也被列为“无”。任何帮助,将不胜感激。谢谢。

最佳答案

而不是发布正文的get the text(对我有用):

item_name.get_text(strip=True)


附带说明一下,您的脚本具有阻塞的“性质”,您可以通过切换到.string web-scraping framework来大大加快操作速度。

关于python - BeautifulSoup不会获取所有数据,只有一些,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30989017/

10-09 18:50