使用python采集文章含详细代码

Python的发展前景是不可估量的,它可以做后端开发、前端开发、爬虫开发、人工智能、金融量化分析、大数据、物联网等,Python应用无处不在,Google搜索引擎核心代码是Python完成的,迪士尼公司动画生成的Unix版本内建了Python环境支持,豆瓣网也是使用Python做的。Python还含有优质的文档、丰富的AI库、机器学习库、自然语言和文本处理库,让我们可以站在别人的肩上进行开发。国内计算机教育也越来越重视Python在编程中的地位,很多大学和中学都纷纷开设了python课程,甚至有些小学也加入了python课程的学习。

今天给大家介绍下python爬虫开发的步骤。

第一步:安装pymysql、requests、time模块

pip命令如下:

pip install pymysql

如果安装速度很慢,可以使用阿里巴巴镜像安装命令如下:

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com pymysql

同理可以安装 requests和time模块

第二步:使用mysql 创建数据库mydb,在mydb 中创建表tbnews

此表包含的字段:ID,title,author,source,createtime,details 除了ID外,都是字符串类型,ID为主键,自动增加。

第三步:创建python项目,新建一个test1.py文件,在文件中加入如下代码,然后就可以运行代码了。

import requests
import re
import pymysql
import time
from bs4 import BeautifulSoup
conn=pymysql.connect(
    user='root',
    password='123456',
    port=3306,
    host='127.0.0.1',
    db='mydb',
    charset='utf8'
)
cursor=conn.cursor()
cursor.execute('set names utf8')
cursor.execute('set autocommit=1')
i=2000
while(i<2059):
    print("正在采集id="+str(i)+"的文章")
    #爬虫的三要素:抓取 分析 存储
    try:
        #抓取部分开始
        url="http://yyjcw.com/html/News/{0}.html".format(i)
        response=requests.get(url)
        response.encoding="utf-8"#设置编码
        html=response.content
        soup=BeautifulSoup(html,"html.parser")
        #print(soup)
        #抓取部分结束
        htmlstr=str(soup) #把对象soup转为字符串类型
        patt1=re.compile(r"\s立即购买视频教程\s*(.*)\s*")
        titles=re.search(patt1,htmlstr)
        patt2=re.compile(r"\s(.*)\s来源:(.*)\s日期:(.*)\s*")
        info=re.search(patt2,htmlstr)
        patt3=re.compile(r"\s*(.*)\s*")
        contents=re.search(patt3,htmlstr)
        ititle=titles.group(1)
        iauthor=info.group(1)
        isource=info.group(2)
        icreatetime=info.group(3)
        icontent=contents.group(1)
        # print(titles.group(1))
        # print(info.group(1))
        # print(info.group(2))
        # print(info.group(3))
        # print(contents.group(1))
        sqlstr="insert into tbnews (title,author,source,createtime,details) values ('{0}','{1}','{2}','{3}','{4}')".format(ititle.strip(),iauthor.strip(),isource.strip(),icreatetime.strip(),icontent.strip())
        print(sqlstr)
        cursor.execute(sqlstr)
        conn.commit()
        print("数据插入成功!")
        i =i+1
        time.sleep(1)
    except:
        i=i+1
cursor.close()
conn.close()

这样就可以把夜鹰教程网的文章全部采集下来。

项目代码下载

你可能感兴趣的:(python)