浮華490 2021-06-02 17:18 采纳率: 40%
浏览 73
已采纳

python代码提问

各位大佬有没有人能帮帮忙写一个python爬虫的代码,不用很多,八十行左右就行。没有很高的要求,只要爬的网站不是很偏门就行。

  • 写回答

5条回答 默认 最新

  • 关注

    这是我之前爬取京东评论写的,你可以看一下

    # coding=utf-8
    import requests
    import re
    import io
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    temp='https://item.jd.com/100004325476.html'
    headers = {
            'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 89.0.4389.90Safari / 537.36'
        # 请求的客户端信息
        }
    def url(temp):
        jd_id=re.findall("\d+",temp)[0]  # 提取商品id
        # 替换京东商品js中一般的Request URL模板
        l='https://club.jd.com/comment/productPageComments.action?productId=xxx&score=0&sortType=5&page={page_num}&pageSize=10&isShadowSku=1&rid=0&fold=1'
        l=l.replace('xxx', jd_id)  # 替换id
        return l
    def init():
            # 实例化类的时候运行初始化函数
            # 打开文件
            file_name = 'jd_commet'
            print '正在打开文件'+file_name+'txt文件!'
    def parse_one_page(url,fp):
            # 指定url
            # url='https://club.jd.com/comment/productPageComments.action?productId=100017543968&score=0&sortType=6&page=1&pageSize=10&isShadowSku=100016034372&rid=0&fold=1'
            # 发起请求
            response = requests.get(url, headers=headers)
            # 获取响应
            js_data = response.json()
            # 提取评论列表
            comments_list = js_data['comments']
            for comment in comments_list:
                # 评论内容
                content = comment.get('content')
                content = ' '.join(content.split('\n'))  # 处理换行符
                print(content)
                # 循环写出数据
                fp.write(u'{}\n'.format(content))
                fp.write(u"\n")  # 写入一条数据后加一行空数据
    def parse_max_page(l):
            fp = io.open('E:/python/jd_commet.txt', 'w', encoding='utf_8_sig')
            for page_num in range(10):  # 抓包获得最大页数  最大50页,超出自动停止
                # 指定通用的url模板
                new_url=l.format(page_num=page_num) # 把字符串替换为变量
                print '正在获取第'+str(page_num)+'页'
                # 调用函数
                parse_one_page(url=new_url, fp=fp)
            fp.close()
    def close_files():
            print('爬虫结束,关闭文件!')
    def run(temp):
        init()
        l = url(temp)
        # 开始爬虫
        parse_max_page(l=l)
        # 关闭文件
        close_files()
    if __name__ == '__main__':
        run(temp)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题