当前位置: 首页 > news >正文

青海兴远建设工程有限公司网站网站开发如何搭建框架

青海兴远建设工程有限公司网站,网站开发如何搭建框架,代理商平台,上传网站内容目录 1. 建立 Web 网站 2. 编写 Scrapy 爬虫程序 为了说明 scrapy 爬虫爬取网站多个网页数据的过程&#xff0c;用 Flask 搭建一个小型的 Web 网站。 1. 建立 Web 网站 &#xff08;1&#xff09;books.html <!DOCTYPE html> <html lang"en"> <h…

       目录

1. 建立 Web 网站

2. 编写 Scrapy 爬虫程序


        为了说明 scrapy 爬虫爬取网站多个网页数据的过程,用 Flask 搭建一个小型的 Web 网站。

1. 建立 Web 网站

(1)books.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>books</title>
</head>
<body><h3>计算机</h3><ul><li><a href="database.html">数据库</a></li><li><a href="program.html">程序设计</a></li><li><a href="network.html">计算机网络</a></li></ul>
</body>
</html>

(2)databse.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>database</title>
</head>
<body><h3>数据库</h3><ul><li><a href="mysql.html">MySQL数据库</a></li></ul><a href="books.html">Home</a>
</body>
</html>

(3)program.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>program</title>
</head>
<body><h3>程序设计</h3><ul><li><a href="python.html">Python程序设计</a></li><li><a href="java.html">Java程序设计</a></li></ul><a href="books.html">Home</a>
</body>
</html>

(4)network.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>network</title>
</head>
<body><h3>计算机网络</h3><a href="books.html">Home</a>
</body>
</html>

(5)mysql.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>mysql</title>
</head>
<body><h3>MySQL数据库</h3><a href="books.html">Home</a>
</body>
</html>

(6)python.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>python</title>
</head>
<body><h3>Python程序设计</h3><a href="books.html">Home</a>
</body>
</html>

(7)java.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>java</title>
</head>
<body><h3>Java程序设计</h3><a href="books.html">Home</a>
</body>
</html>

        【问题】编写一个爬虫程序爬取这个网站所有的页面的<h3>标题文字。

服务器程序 server.py 如下:

import flask
import osapp = flask.Flask(__name__)def getFile(fileName):data = b""fileName = "web_html/" + fileName  # 将7个html页面放到web_html目录下,做了个路径拼接if os.path.exists(fileName):fobj = open(fileName, "rb")data = fobj.read()fobj.close()return data@app.route("/")
def index():return getFile("books.html")@app.route("/<section>")
def process(section):data = ""if section != "":data = getFile(section)return dataif __name__ == "__main__":app.run()

2. 编写 Scrapy 爬虫程序

        仍然使用4.1节中的爬虫程序项目,重新编写MySpider.py程序

爬虫程序 MySpider.py 如下:

import scrapyclass MySpider(scrapy.Spider):name = "mySpider"def start_requests(self):url = 'http://127.0.0.1:5000'yield scrapy.Request(url=url, callback=self.parse)# 函数start_requests可以用start_urls替换# start_urls = ['http://127.0.0.1:5000']def parse(self, response, **kwargs):try:print(response.url)data = response.body.decode()selector = scrapy.Selector(text=data)print(selector.xpath("//h3/text()").extract_first())links = selector.xpath("//a/@href").extract()for link in links:url = response.urljoin(link)yield scrapy.Request(url=url, callback=self.parse)except Exception as err:print(err)

开启 服务器server.py

执行run.py如下:

http://127.0.0.1:5000
计算机
http://127.0.0.1:5000/network.html
计算机网络
http://127.0.0.1:5000/program.html
程序设计
http://127.0.0.1:5000/database.html
数据库
http://127.0.0.1:5000/mysql.html
MySQL数据库
http://127.0.0.1:5000/java.html
Java程序设计
http://127.0.0.1:5000/books.html
计算机
http://127.0.0.1:5000/python.html
Python程序设计

        scrapy 自动筛选已经访问过的网站,我们来分析程序的执行过程:

(1)    

start_urls=['http://127.0.0.1:5000']

这是入口地址,访问这个地址成功后会回调parse函数;

(2)    

def parse(self, response):

这是回调函数,该函数的response对象包含了网站返回的信息;

(3)    

data=response.body.decode()          

selector=scrapy.Selector(text=data)

网站返回的response.body的二进制数据,要decode转为文本,然后建立Selector对象;

(4)

print(selector.xpath("//h3/text()").extract_first())

获取网页中的<h3>标题的文本,这就是要爬取的数据,为了简单起见这个数据只有一项;

(5)

links=selector.xpath("//a/@href").extract()

获取所有的<a href=...>链接的 href值,组成links列表;

(6)

for link in links:            

        url=response.urljoin(link)              

         yield scrapy.Request(url=url,callback=self.parse)

访问links的每个link,通过urljoin函数与response.url地址组合成完整的 url地址,再次建立Request对象,回调函数仍然为parse,即这个parse函数会被递归调用。其中使用了yield语句返回每个Request对象,这是 scrapy程序的要求。

http://www.yayakq.cn/news/358236/

相关文章:

  • 专门建设网站的公司企业网站建设单位
  • 分享信息的网站富锦建设局网站
  • 做面食的网站深圳网站建设-中国互联
  • 安徽安搜做的网站怎么样任何东西都能搜出来的软件
  • 鲜花网站素材免费网站建设凡科
  • 门户网站开发万网和慧聪网
  • 怎么做网站在线玩游戏建站平台费用
  • 建设银行考试报名网站怎么建个免费英文网站
  • 电商网站建设任务分解结构网络营销典型推广案例
  • 做房地产网站广告销售个人网站转为企业网站
  • 西安网站建设求职简历网站购买广告位
  • 网站建设实验步骤百度首页网站的设计
  • 安徽住房和建设网站贵阳网站制作费用
  • 上海建设银行招聘网站wordpress 旅行社
  • 那个网站可以做链接网站建设推广方案模版
  • 网站制作网站维护牌子网排行榜
  • 做网站要什么语言建设久久建筑网站
  • 中国建设银行英语网站首页wordpress模板查询
  • 网站代备案流程图基础微网站开发代理商
  • 宁波做企业网站公司宁波seo排名方案优化
  • 五合一免费建站ai生成建筑网站
  • 上海人才招聘哪个网站好网站 多个ip 备案
  • 布吉网站建设多少钱美食网站建设实施方案
  • 广州市网站建设 骏域腾冲住房和城乡建设局网站
  • 厦门网站制作网站建设收费实物黄金哪个网站做的好
  • 中山最好的网站建设宁波网络推广方案公司推荐
  • 汕头企业网站建设公司中国建设银行网站上不去
  • 网站建设与管理上海交通大学h5模版网站
  • 网站建设及规划建筑工程劳务信息平台
  • 做外贸女装有哪些网站有哪些wordpress 制作专题