资源简介
Python项目案例开发从入门到实战源代码第5章 爬虫应用——校园网搜索引擎
代码片段和文件信息
import sys
from collections import deque
import urllib
from urllib import request
import re
from bs4 import BeautifulSoup
import lxml
import sqlite3
import jieba
##safelock=input(‘你确定要重新构建约5000篇文档的词库吗?(y/n)‘)
##if safelock!=‘y‘:
## sys.exit(‘终止。‘)
url=‘http://www.zut.edu.cn/index/xwdt.htm‘ #‘http://www.zut.edu.cn‘#入口
unvisited=deque()#待爬取链接的列表,使用广度优先搜索
visited=set() #已访问的链接集合
unvisited.append(url)
#unvisited.append(‘http://www.zut.edu.cn/index/xwdt.htm‘)
conn=sqlite3.connect(‘viewsdu.db‘)
c=conn.cursor()
#在create table之前先drop table是因为我之前测试的时候已经建过table了,所以再次运行代码的时候得把旧的table删了重新建
c.execute(‘drop table doc‘)
c.execute(‘create table doc (id int primary keylink text)‘)
c.execute(‘drop table word‘)
c.execute(‘create table word (term varchar(25) primary keylist text)‘)
conn.commit()
conn.close()
print(‘***************开始!***************************************************‘)
cnt=0
print(‘开始。。。。。 ‘ )
while unvisited:
url=unvisited.popleft()
visited.add(url)
cnt+=1
print(‘开始抓取第‘cnt‘个链接:‘url)
#爬取网页内容
try:
response=request.urlopen(url)
content=response.read().decode(‘utf-8‘)
except:
continue
#寻找下一个可爬的链接,因为搜索范围是网站内,所以对链接有格式要求,这个格式要求根据具体情况而定
#解析网页内容可能有几种情况这个也是根据这个网站网页的具体情况写的
soup=BeautifulSoup(content‘lxml‘)
all_a=soup.find_all(‘a‘{‘class‘:“c67214“}) #本页面所有的新闻链接
for a in all_a:
#print(a.attrs[‘href‘])
x=a.attrs[‘href‘] #网址
if re.match(r‘http.+‘x): #排除是http开头,而不是http://www.zut.edu.cn网址
if not re.match(r‘http\:\/\/www\.zut\.edu\.cn\/.+‘x):
continue
if re.match(r‘\/info\/.+‘x): #“/info/1046/20314.htm“
x=‘http://www.zut.edu.cn‘+x
elif re.match(r‘info/.+‘x) : #“info/1046/20314.htm“
x=‘http://www.zut.edu.cn/‘+x
elif re.match(r‘\.\.\/info/.+‘x): #“../info/1046/20314.htm“
x=‘http://www.zut.edu.cn‘+x[2:]
elif re.match(r‘\.\.\/\.\.\/info/.+‘x): #“../../info/1046/20314.htm“
x=‘http://www.zut.edu.cn‘+x[5:]
#print(x)
if (x not in visited) and (x not in unvisited):
unvisited.append(x)
a=soup.find(‘a‘{‘class‘:“Next“}) #下一页
if a!=None:
x=a.attrs[‘href‘] #网址
if re.match(r‘xwdt\/.+‘x):
x=‘http://www.zut.edu.cn/index/‘+x
else:
x=‘http://www.zut.edu.cn/index/xwdt/‘+x
if (x not in visited) and (x not in unvisited):
unvisited.append(x)
title=soup.title
article=soup.find(‘div‘class_=‘c67215_content‘id=‘vsb_newscontent‘)
author=soup.find(‘span‘class_=“authorstyle67215“) #作者
time=soup.find(‘span‘class_=“timestyle67215“)
if title==None and article==None and author==None:
print(‘无内容的页面。‘)
continue
elif article==Non
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5604 2018-04-05 16:37 第5章 爬虫应用——校园网搜索引擎\search_engine_build-2.py
文件 2146 2018-08-05 11:13 第5章 爬虫应用——校园网搜索引擎\search_engine_use.py
文件 3912704 2018-04-05 16:58 第5章 爬虫应用——校园网搜索引擎\viewsdu - 副本.db
文件 4865024 2018-08-05 11:05 第5章 爬虫应用——校园网搜索引擎\viewsdu.db
目录 0 2018-11-07 19:54 第5章 爬虫应用——校园网搜索引擎
----------- --------- ---------- ----- ----
8785478 5
相关资源
- 廖雪峰python教程打印版完整版.pdf
- Twisted-17.9.0.tar.bz2和setuptools-19.6.tar.g
- XBEE Python Library
- OpenCV官方教程中文版Python版带完整书
- dlib18.17 编译好的python-dlib库 不需要
- Think Bayes
- python pip安装包
- Programming Computer Vision with Python.pdf
- matplotlib 安装包
- 【官方文档】TensorFlow Python API docume
- python网络数据采集 英文原版
- beginning django (使用Python进行Web应用程
- OpenCV Python 手册
- Deep Time Series Forecasting with Python 无水印
- Problem Solving in Data Structures and Algorit
- Introduction to Computation and Programming Us
- Expert Python Programming 2nd 第2版pdf 0分
- Python PyGame and Raspberry Pi Game Developmen
- Learn More Python 3 the Hard Way 原版无水印
- Python Web Development with Django 无水印pd
- Python Programming on Win32 无水印pdf
- Image Processing and Acquisition using Python 无
- Fundamentals of Python Data Structures 无水印
- Derivatives Analytics with Python 无水印pdf
- Data Structures and Algorithms in Python 无水印
- Data Science from Scratch First Principles wit
- RESNET、GOOGLENET等Python代码实现
- IDAPython手册(中文版)
- scip的python
- python简明教程 2017 中文版
评论
共有 条评论