Pthon爬取

python中关于requests库的安装_hongyiWeng的博客-CSDN博客_requests库安装https://blog.csdn.net/hongyiWeng/article/details/98243133

import requests, time, re, os
import pandas as pd


def example():
    if not os.path.exists('图片下载'):
        os.mkdir('图片下载')
    names = []
    reviews = []
    head = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
    for page in range(1, 3):
        ########################获取网页源代码的字符串################################
        url = f'https://book.douban.com/latest?subcat=%E5%85%A8%E9%83%A8&p={page}'
        response = requests.get(url=url, headers=head)
        code = response.text
        ########################获取网页源代码的字符串################################

        ########################解析网页中的名字################################
        name_pattern = '<a class="fleft" href=.*?>(.*?)</a>'
        name = re.findall(name_pattern, code)
        names.extend(name)
        ########################解析网页中的名字################################

        ########################解析网页中的评价数################################
        review_pattern = '<span class="fleft ml8 color-gray">\((.*?)人评价\)</span>'
        review = re.findall(review_pattern, code)
        reviews.extend(review)
        ########################解析网页中的评价数################################
        # start_pattern = '<span class="font-small color-red fleft">(.*?)</span>'
        # starts =re.findall(start_pattern,code)
        # inf_pattern = '''<p class="subject-abstract color-gray">
        #                     (.*?)
        #                 </p>'''
        # infs = re.findall(inf_pattern,code)
        # # infs[0].split('/')
        # #注意 括号的正确正则表达式 (为 \( ;    )为 \)
        # review_pattern = '<span class="fleft ml8 color-gray">\((.*?)人评价\)</span>'
        # reviews = re.findall(review_pattern,code)

        img_url_pattern = '<img class="subject-cover" align="left" src=(.*?)>'
        img_urls = re.findall(img_url_pattern, code)
        img_urls = [i.replace('"', '') for i in img_urls]
        for i in range(len(name)):
            na = name[i]
            img_url = img_urls[i]
            img_name = './' + '图片下载/' + na + '.jpg'
            img_respone = requests.get(img_url, headers=head)
            with open(img_name, mode='wb') as f:
                f.write(img_respone.content)

        time.sleep(4)

    df = pd.DataFrame({'名字': names, '评论数': reviews})
    df.to_csv('图书信息.csv', encoding='utf-8-sig', index=None)


if __name__ == '__main__':
    example()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亖嘁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值