资源简介
花了几天写的,是我需要写一个扫描器,爬网址是其中一个功能,就分享出来了,半天爬10万个网址,全自动无限爬。里面有一个sql文件,直接导入数据库就行了。
代码片段和文件信息
#-*- coding: UTF-8 -*-
import re
from urllib import request
from urllib import parse
import pymysql
import threading
#创建数据库连接 买源码到96KaiFa,网址:www.96kaifa.com 下面是数据库,自己配置下吧!
conn=pymysql.connect(host=‘localhost‘port=3306user=‘root‘passwd=‘root‘db=‘scan‘)
#创建数据库游标
cursor=conn.cursor()
#执行sql,并返回收影响行数
effect_row=cursor.execute(“select * from url where status=0 order by id desc“)
def kaishi():
#======获取网页源代码方法 start======#
def getHtml(url):
try:
page = request.urlopen(url timeout=3)
html = page.read()
return html
except:
print(“异常“)
code_error = ““
counts=0
for url in cursor.fetchall():
effect_row = cursor.execute(“select * from url“)
print(effect_row)
url = url[1]
try:
effect_row = cursor.execute(“select * from url where url=‘%s‘ and status=1“%(url))
print(str(counts) + “:“ + str(url))
except:
continue
if effect_row==1:
code_error = “yichang“
print(“已爬过“)
else:
print(“开始爬“)
cursor.execute(“update url set status=1 where url=‘%s‘“%(url))
try:
#print(“开始:“+url)
html = getHtml(url)
#print(“结束:“ + url)
except:
code_error=“yichang“
print(“异常“)
counts+=1
#print(html)
#======获取网页源代码方法 start======#
if code_error==“yichang“:
print(“跳过“)
continue
else:
#获取中的URL
#print(“开始提取网址“)
res_url = r“(?<=href=\“).+?(?=\“)|(?<=href=\‘).+?(?=\‘)“
link = re.findall(res_urlstr(html)re.I|re.S|re.M)
for urls in link:
f = parse.urlparse(urls)
if (f.scheme==‘‘ or f.netloc==‘‘): #http为空 或者 host 为空时,跳过
continue
n_url = f.scheme + “://“ + f.netloc
effect_row = cursor.execute(“select * from url where url=‘%s‘“%(n_url))
if effect_row==1:
#print(“已存在“)
continue
else:
n_url = f.scheme + “://“ + f.netloc
print(“把 “+n_url+“ 写入数据库“)
cursor.execute(“insert into url (urlstatussvn_status) values(‘%s‘00)“%(n_url))
t1=threading.Thread(target=kaishi)
t1.start()
t2=threading.Thread(target=kaishi)
t2.start()
t3=threading.Thread(target=kaishi)
t3.start()
t4=threading.Thread(target=kaishi)
t4.start()
t5=threading.Thread(target=kaishi)
t5.start()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.CA.... 2433 2018-02-10 17:16 reptile.py
.CA.... 3520820 2018-02-10 17:17 scan.sql
----------- --------- ---------- ----- ----
3523253 2
- 上一篇:Python按文件名分类学习
- 下一篇:百度文库自动
相关资源
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- python3.5.2.chm官方文档
- python3.5.4_windows下32与64位安装包
- python网络爬虫获取景点信息源码
- GitHack-python3.zip
- Python3.x+PyQtChart实现数据可视化界面
- python3根据模板图片批量自动制作个性
- 《机器学习实战》源代码Python3
- Python3.5.2的IDLE汉化版计算机等级考试
- python3.5 百度ai人脸识别
- python3实现的国密SM2+SM3
- Python数据爬虫及可视化分析
- python100道面试题及解答全部答案 pyc
- #python3.3关于Tk中的Treeview使用方法
- Python3.x+Pyqt5实现界面编程浏览网页
- Python网络爬虫实战.epub
- 《机器学习实战》Python3代码
- Python3学习笔记
- Python3.7.2中文文档-标准库-通用操作系
- Python3.7.2中文文档-标准库-Python数据类
- python网络爬虫爬取整个网页
- python3基础教程第三版高清
- 随机森林python3实现代码(带数据集)
- dlib-19.18.0-cp37-cp37m-linux_armv7l.whl
- python3学习路线+思维导图
- Learn python3 the hard way
- 笨办法学python 3 第四版 英文
- python3爬虫
- Beginning Python: From Novice to Professional
评论
共有 条评论