利用Python库对xx网上排名前1000本书籍信息进行提取,保存

目标:

对xx网上的书籍信息进行提取并保存为txt格式, 标记为(排名,书名,图片地址,作者,推荐指数,五♥数量,价格)

步骤:

1、调用requests库,拿到所需要的网页源代码 状态码为200表示返回成功

2、对返回的网页源代码进行解析,使用正则表达式获取想要的关键信息(书名,排名,作者等等......),之后封装数据

3、获取1-25页的1000条书籍信息,使用for循环保存在txt文件里面

关键函数和正则表达式编写实现功能:

自定义函数:

1、parse_dandan(url)

2、parse_result(html)

3、write_item_to_file(item)

4、main(page)

pattern = re.compile('
  • .*?list_num.*?(\d+)..*?.*?class="star">.*?class="tuijian">(.*?).*?class="publisher_info">.*?target="_blank">(.*?).*?class="biaosheng">.*?(.*?).*?

    ¥(.*?).*?

  • ',re.S)

    代码实现:

    '''
    对当当网上的书籍信息进行提取
    (排名,书名,图片地址,作者,推荐指数,五♥数量,价格)
    
    '''''
    import requests
    import re
    import json
    '''
    请求成功,拿到源代码
    '''
    def request_dandan(url):
        try:
            resp = requests.get(url)
            if resp.status_code ==200:
                return resp.text
        except requests.requestException:
            return None
    '''
    对其进行解析,使用正则表达式获取
    想要的关键信息,之后封装数据
    '''
    
    def parse_result(html):
       pattern = re.compile('
  • .*?list_num.*?(\d+)..*?.*?class="star">.*?class="tuijian">(.*?).*?class="publisher_info">.*?target="_blank">(.*?).*?class="biaosheng">.*?(.*?).*?

    ¥(.*?).*?

  • ',re.S) items = re.findall(pattern,html) for item in items: yield { 'range': item[0], 'iamge': item[1], 'title': item[2], 'recommend': item[3], 'author': item[4], 'times': item[5], 'price': item[6] } ''' 将获取的数据保存在book.txt里面 ''' def write_item_to_file(item): print('开始写入数据 ====> ' + str(item)) with open('book.txt', 'a', encoding='UTF-8') as f: f.write(json.dumps(item, ensure_ascii=False) + ' ') f.close() ''' 定义函数 使用page变量实现翻页功能,requests请求,返回 HTML进行正则解析 ''' def main(page): url = 'http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-' + str(page) html = request_dandan(url) items = parse_result(html) # 解析过滤我们想要的信息 for item in items: write_item_to_file(item) ''' 获取 1-25页的1000条数据 使用for循环 ''' if __name__ == "__main__": for i in range(1,26): main(i)


    运行结果如下:


    关注我,让我们一起学习python爬虫,加油

    发表评论
    留言与评论(共有 0 条评论) “”
       
    验证码:

    相关文章

    推荐文章