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"<td\sid=\"td_title\">\s<a\sclass=\"gotobuy\"\shref=\"http://www.yyjcw.com/list.html\"\starget=\"_blank\">立即购买视频教程</a>\s*(.*)\s*</td>")
titles=re.search(patt1,htmlstr)
patt2=re.compile(r"<td\sid=\"td_date\">\s<a\shref=\"http://www.yyjcw.com\"\starget=\"_blank\"\stitle=\".*\">(.*)</a>\s来源:(.*)\s日期:(.*)\s*</td>")
info=re.search(patt2,htmlstr)
patt3=re.compile(r"<td\sid=\"td_content\">\s*(.*)\s*</td>")
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()
这样就可以把夜鹰教程网的文章全部采集下来。