python爬虫入门

本人现在是一名实习生,现在在公司实习,之前看到许多人在csdn发表文章,所以呢,我也想发表我自己的文章,把我知道的东西分享给大家。

由于是第一次写,可能写的不是很完善,欢迎大家提些建议哈。微笑下面切入正题:

1.首先需要在自己的电脑上下载python并且安装python的运行环境:下载链接:https://www.python.org/,下载好python,接下来就是安装了,
本人是按照默认安装,读者也可以按照自己的需求自定义安装。之后是配置环境变量:在我的电脑->属性->高级系统设置->环境变量,将你python的安装目录下的
scripts文件配置到环境变量中。最后,在dos下输入python,如果出现如下结果,恭喜你,环境安装完毕。

2下一步我们要安装开发工具,本人用的是PyCharm,安装过程本人就不再叙述了,按照提示安装即可。下面我们需要导入几个爬虫需要的模块,即:BeautifulSoup,requests,cvs,

re,我们用工具来下载,在file->settings->Project->Project interpreter里面点击右面的+下载即可。

3.我们的目的是爬取

https://www.25pp.com/android/soft/fenlei/5021_954/,此网站的app名字,下载量,包名,更新时间
并保存到csv里面
4.下面附上源码:

# coding : UTF-8
import requests
import csv
import random
import time
import socket
import http.client
import os
import re

from bs4 import BeautifulSoup

def get_content (url,data=None):
    timeout = random.choice(range(80,180))
    while True:
        try:
            rep = requests.get(url,None,timeout = timeout)
            rep.encoding = 'utf-8'
            break
        except socket.timeout as e:
            print( '3:', e)
            time.sleep(random.choice(range(8,15)))
    return rep.text


def get_data(html_text):
        finalresult = []
        soup = BeautifulSoup(html_text, "html.parser")
        body = soup.body
        data = body.find('ul',{'class':'app-list clearfix'}).find_all('li')
        for car in data:
            temp = []
            #包名
            pack_id = re.findall('pack_id=(.*);',car['data-stat-exp'])[0]
            temp.append(pack_id)

            #app名
            app_name = car.find('a')['title']
           # title = href.find('title')
            temp.append(app_name)

            # 下载量
            p = car.find('p',{'class':'app-downs ellipsis'})
            num = p['title']
            temp.append(num)

            #分类
            kind = body.find_all('ul',{'class':'clearfix'})[1]
            kind1 = body.find_all('li', {'class', 'active'})[0].find('a').find('span').text
            kind2 = body.find_all('li', {'class', 'active'})[1].find('a')['title']
            #print(kind1+'|'+kind2)
            k = kind1+'|'+kind2
            temp.append(k)

            #更新日期
            a = car.find('a')['href']
            url_details = 'https://www.25pp.com' +a
            soup_details = BeautifulSoup(requests.get(url_details).text,"html.parser")
            datetime = soup_details.find('div',{'class':'app-detail-info'}).find('p').find('span',{'class':'ellipsis'}).find('strong').text
            date = re.findall('2017-(.*)', datetime)
            temp.append(datetime)

            finalresult.append(temp)

        return finalresult

def write_data(data, name):
    file_name = name
    head = tuple(['包名','app名','下载量','分类','更新日期'])
    with open(file_name, 'a+', errors='ignore', newline='') as f:
            f_csv = csv.writer(f)
            if (page == 1):
                f_csv.writerow(head)

            f_csv.writerows(data)


if __name__ == '__main__':
    url ='https://www.25pp.com/android/soft/fenlei/5021_954/'
    for page in range(1,21):
        url2 = url+str(page)+'/'
        html = get_content(url2)
        result = get_data(html)
        write_data(result, 'car.csv')






5.程序运行完毕部分截图:6.一个简单的入门程序运行完毕。读者如果有什么不懂得,或者需要哪些改进可以留言。
 
 
 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值