您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页Python网络爬虫实习报告

Python网络爬虫实习报告

来源:吉趣旅游网
Python网络爬虫实习报告

目录

一、选题背景 .......................................................................................... 二、爬虫原理 .......................................................................................... 三、爬虫历史和分类 ............................................................................... 四、常用爬虫框架比较 ........................................................................... 五、数据爬取实战(豆瓣网爬取电影数据) ......................................... 1分析网页 ............................................................................................... 2爬取数据 ............................................................................................... 3数据整理、转换 .................................................................................... 4数据保存、展示 .................................................................................... 5技术难点关键点 .................................................................................... 六、总结 .................................................................................................

一、 选题背景 二、 爬虫原理 三、 爬虫历史和分类 四、 常用爬虫框架比较

Scrapy框架:Scrapy框架是一套比较成熟的Python爬虫框架,是使用Python开发的快速、高层次的信息爬取框架,可以高效的爬取web页面并提取出结构化数据。Scrapy应用范围很广,爬虫开发、数据挖掘、数据监测、自动化测试等。

Crawley框架:Crawley也是Python开发出的爬虫框架,该框架致力于改变人们从互联网中提取数据的方式。

Portia框架:Portia框架是一款允许没有任何编程基础的用户可视化地爬取网页的爬虫框架。

newspaper框架:newspaper框架是一个用来提取新闻、文章以及内容分析的Python爬虫框架。

Python-goose框架:Python-goose框架可提取的信息包括:<1>文章主体内容;<2>文章主要图片;<3>文章中嵌入的任heYoutube/Vimeo视频;<4>元描述;<5>元标签

五、数据爬取实战(豆瓣网爬取电影数据)

1分析网页

# 获取html源代码 def __getHtml(): data = [] pageNum = 1 pageSize = 0 try:

while (pageSize <= 125): 2爬取数据

def __getData(html): title = [] # 电影标题 #rating_num = [] # 评分 range_num = [] # 排名 #rating_people_num = [] # 评价人数 movie_author = [] # 导演 data = {}

# bs4解析html soup = BeautifulSoup(html, \"html.parser\")

for li in soup.find(\"ol\'grid_view'}).find_all(\"li\"):

title.append(li.find(\"span\ #rating_num.append(li.find(\"div\class_='star').find(\"span\ range_num.append(li.find(\"div\

class_='pic').find(\"em\").text) #spans = li.find(\"div\class_='star').find_all(\"span\") #for x in range(len(spans)): # if x <= 2: # pass # else: # rating_people_num.append(spans[x].string[-len(spans[x].string):-3]) str = li.find(\"div\

class_='').text.lstrip() index = str.find(\"主\") if (index == -1):

index = str.find(\"...\")

print(li.find(\"div\class_='pic').find(\"em\").text)

if (li.find(\"div\== 210):

index = 60 # print(\"aaa\") # print(str[4:index]) movie_author.append(str[4:index])

data['title'] = title

#data['rating_num'] = rating_num data['range_num'] = range_num

#data['rating_people_num'] = rating_people_num data['movie_author'] = movie_author

return data 3数据整理、转换 f.write(\"\") f.write(\"\")

f.write(\"电影\")

#f.write(\"评分\") f.write(\"

\")

#f.write(\"评价人数\") f.write(\"导演

\") f.write(\"\") f.write(\"\")

f.write(\"\") for data in datas:

for i in range(0, 25): f.write(\"\") f.write(\"style='color:orange;text-align:center'>%s\" % data['title'][i])

# f.write(\"%s\" % data['rating_num'][i]) f.write(\"style='color:red;text-align:center'>%s\" % data['range_num'][i])

# f.write(\"%s\" % data['rating_people_num'][i]) f.write(\"style='color:black;text-align:center'>%s\" % data['movie_author'][i])

f.write(\"\") f.write(\"\") f.write(\"\") f.write(\"\") f.write(\"\") f.write(\"\") f.close()

if __name__ == '__main__': datas = []

htmls = __getHtml()

for i in range(len(htmls)): data = __getData(htmls[i])

datas.append(data) __getMovies(datas)

4数据保存、展示

结果如后图所示:

5技术难点关键点

数据爬取实战(搜房网爬取房屋数据)

from bs4 import BeautifulSoup import requests rep = requests.get()

rep.encoding = \"gb2312\" # 设置编码方式 html = rep.text

soup = BeautifulSoup(html, 'html.parser') f = open(, 'w',encoding='utf-8') f.write(\"\")

f.write(\"Insert title here\") f.write(\"\")

f.write(\"

新房成交TOP3

\")

f.write(\"

\")

f.write(\"

\") f.write(\"\") f.write(\"\")

for li in soup.find(\"ul\",class_=\"ul02\").find_all(\"li\"):

name=li.find(\"div\",class_=\"pbtext\").find(\"p\").text chengjiaoliang=li.find(\"span\",class_=\"red-f3\").text try:

junjia=li.find(\"div\",class_=\"ohter\").find(\"p\",class_=\"gray-9\")#.text.replace('?O', '平方米') except Exception as e:

junjia=li.find(\"div\",class_=\"gray-9\")#.text.replace('?O', '平方米') f.write(\"

\" % name)

f.write(\"

\" % chengjiaoliang) f.write(\"\" % junjia)

print(name)

f.write(\"

房址

成交量

均价

color=red>%s%s%s
\") f.write(\"\")

六、总结

教师评语:

成绩: 指导

教师:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务