搜索
您的当前位置:首页正文

网络爬虫: 从allitebooks.com抓取书籍信息并从am

来源:二三娱乐

一、了解需要和分析网站

通过正则表达式匹配价格代码:
def get_price_amazon(isbn):
    base_url = 
    url = base_url + str(isbn)
    page = urlopen(url)
    soup = BeautifulSoup(page, 'lxml')
    page.close()
    soup = BeautifulSoup(html_content, 'lxml')
    price_regexp = 
    price = soup.find(text=price_regexp)
    return [isbn, price]

上一篇随笔中已经得到了所有书籍的ISBN码,遍历所有的ISBN码传入get_price_amazon()方法即可获取所有书籍的价格:

def get_all_isbn():
    all_isbn = []
    with open('isbn.csv', 'rt') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in spamreader:
            all_isbn.append(row[0])
    return all_isbn

def run():
    qs = []
    pool = ThreadPool(processes=10)
    book_price_list = []
    for isbn in get_all_isbn():
        price = get_price_amazon(isbn)
        book_price_list.append(price)

运行结果:

二、将两部分结果数据合并

book_info_data = pd.read_csv('books.csv')
price_data = pd.read_csv('prices.csv')
result = pd.merge(book_info_data, price_data, on='isbn')
result.to_csv('result.csv', index=False, header=True, columns=['isbn', 'title', 'price'])

最终结果:



接下来打算学习Scrapy库,Scrapy是一个采集工具,它可以帮你大幅降低网页查找和识别工作,轻松采集一个或多个域名的信息。有兴趣的朋友欢迎关注本博客,也欢迎大家留言进行讨论。

Top