BeautifulSoup没有得到所有数据,只有一些

时间:2015-06-22 20:13:30

标签: python html web-scraping beautifulsoup html-parsing

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。我现在已经设置打印条目的标题和条目的描述。问题是虽然标题正确地为列出的每个对象打印,但描述列为&#34;无&#34;对于他们中的大多数人来说,即使有明确的描述。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:2)

你快到了。只需将item_name.string更改为item_name.text

即可

答案 1 :(得分:1)

而不是获得发布机构的.stringget the text(为我工作):

item_name.get_text(strip=True)

作为旁注,您的脚本具有阻止&#34;性质&#34;,您可以通过切换到Scrapy web-scraping framework来大幅加快速度。