用的时候像小编一样,先建立一个文件,一定要记住先建立一个pa.py这个文件,这个只是一个名字而已
pa.py
from urllib.request import urlopen
from bs4 import BeautifulSoup
# class bozhu():
# k="https://blog.csdn.net/ScapeD/article/details/81813617"
# 下面的这个只需要自己输入一个网址,那么就开始了爬取链接,就相当于一个启动键
def pa(k):
try:
html = urlopen(k)
bs = BeautifulSoup(html, 'html.parser') # 解析网页
hyperlink = bs.find_all('a') # 获取所有超链接
for h in hyperlink:
hh = h.get('href')
with open("zi6.txt", 'a', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write(str(hh))
ff.write('\n')
except ValueError:
print('')
except Exception:
print("")
# 没有预先判断到的错误怎么办?
# ZeroDivisionError
finally:
# 无论是否有异常,都会执行的代码
print('')
# print(hh)
# 引号必须挨着边界
# 筛选子链接中的title和链接
def pa2():
with open('zi6.txt', 'r', encoding='gbk') as f:
str = f.read()
f1 = str.split('\n')
for h1 in f1:
try:
headers = {
'user-agent': 'Mzilla/5.0'
}
html = urlopen(h1)
bs = BeautifulSoup(html, 'html.parser') # 解析网页
hyperlink = bs.find_all('title')
for h in hyperlink:
# zz=h, ':', k
# zz=str(h)
print(h, ":", h1)
except ValueError:
print('')
except Exception:
print("")
# 没有预先判断到的错误怎么办?
# ZeroDivisionError
finally:
# 无论是否有异常,都会执行的代码
print('')
上面的这个文件就是真正的幕后主要操控的,而下面的这个就是一个中转站,有了它,你就可以直接在最后的一个就只是很简单的输入pachong,或者。。。。就可以直接运行了
然后再建立一个文件-----运行.py
#在这个模块里面调用zz模块的时候不能和那个zz模块重复了,这个里面既然已经有了pa()和pa2这两个东西,那么另外的zz里面就不能有
def pachong():
with open("zi6.txt", 'w', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write("")
ff.write('\n')
import pa
k1 = input()
# k="https://goodstudy.blog.csdn.net/article/details/100665697?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link"
k = k1
pa.pa(k)
pa.pa2()
def pachong1(k):#这个就是为
with open("zi6.txt", 'w', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write("")
ff.write('\n')
import pa
pa.pa(k)
pa.pa2()
再新建最后的一个文件,这个爬虫项目就建立好了,这个你想专门取名字就怎么取---XXX.py
每一次要用的时候只需要运行这个文件就行了,其余的文件就只管放在那里当摆设即可,这三个文件要记得放在同一个文件夹里面
#这个是用来爬取自己需要的资料---pachong
#这个是更高级别的爬虫,值需要输入一个关键词就将冠军词中网页的链接再爬取一次,相当于避免了自己输入#网址---gaoji
import 运行
运行.pachong()
我编写的这个爬虫非常的简单,谁都可以用,你只需要把这个复制一下,立马就相当于创造了一个你自己的浏览器,
下面我再给大家示范一下怎么用这个
我是不是先点击了一下这个要运行的文件,我这个选择的是运行.pachong()你也可以选择gaoji
上面的那个代码模块里面小编都是弄了备注的
然后我就在这个里面输入网址,发现没,小编专门输入好了网址之后就在那后面打了几个空格,因为如果你就这样直接点击回车,那么它就会自动进入这个网址,一定要记住专门按几个空格
现在就可以动动小手按一下回车,没有错,你就可以一次性爬取小编网址里面的全部东西了,你有可以换成其它的网址---比如你是找学习资料的那么你就把学习资料的网址复制上去---一定要记得弄几个空格
刚刚你们用的是那个低级的爬虫,你想要用高级的下面也有
#这个是用来爬取自己需要的资料---pachong
#这个是更高级别的爬虫,值需要输入一个关键词就将冠军词中网页的链接再爬取一次,相当于避免了自己输入#网址---gaoji
import 运行
运行.pachong()
就是用的时候仅仅的把那个 运行.pachong()改为运行.gaoji()
再按一下运行键----虽然我的这篇文章的名字就叫做专门为新手准备的,不会有人连运行键是哪个都不知道吧,还有那个新建文件怎么新建都不知道吧。
如果是的话还得自己想想办法该怎么学会,教你写字才发现你还没有学会捏笔---那可不行哟。
import 运行
运行.gaoji()
我也是无语了,刚刚我又检查了一遍,结果发现那个代码又运行不了高级爬虫,不过另一个爬虫还是可以使用的,就是那个直接使用网址的,小编趁着大课间又重新写了一个,这个可以直接输入你要查询的东西,比如说你要查询计算机考研知识,那么就只管在下面的运行栏目中输入就可以了
下面小编讲解一下操作方法
新建一个文件,只管文件你想给它取什么名字就什么名字
import re
#import requests
import 运行,requests
from bs4 import BeautifulSoup
def test(html, rex):
alist = []
r = re.compile(rex)
matchs = r.findall(html)
if matchs != None:
for found in matchs:
if found not in alist:
alist.append(found)
return alist
rex = r'<a\s*href=\"(.*?)\"'
#page = urllib.urlopen('http://hi.baidu.com')
# if__name__=='__main__'
headers = {
'user-agent': 'Mzilla/5.0'
}
#url = 'http://www.sogou.com/web'
#https://juejin.cn/
url='http://www.sogou.com/web'
kw = input('input the word:')
param = {
'query': kw
}
response = requests.get(url=url, params=param, headers=headers)
#page_text = response.text
html = response.text
#print(page_text)
#html = page.read()
#page.close()
f=test(html, rex)
#文件的中转站
with open("zi6.txt", 'w', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write("")
ff.write('\n')
for hh in f:
with open("zi6.txt", 'a', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write(str(hh))
ff.write('\n')
#这个已经成功了
def gaoji():
import 运行
with open('zi6.txt', 'r', encoding='gbk') as f:
str = f.read()
f1 = str.split('\n')
for hh1 in f1:
# pa2(hh1)
print(hh1)
运行.pachong1(hh1)
gaoji()
新建一个文件,名字叫运行.py
import pa
def pachong1(k):
with open("zi6.txt", 'w', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write("")
ff.write('\n')
import pa
pa.pa(k)
pa.pa2()
再新建一个文件,名字叫做pa.py
from urllib.request import urlopen
from bs4 import BeautifulSoup
# class bozhu():
# k="https://blog.csdn.net/ScapeD/article/details/81813617"
# 下面的这个只需要自己输入一个网址,那么就开始了爬取链接,就相当于一个启动键
def pa(k):
try:
html = urlopen(k)
bs = BeautifulSoup(html, 'html.parser') # 解析网页
hyperlink = bs.find_all('a') # 获取所有超链接
for h in hyperlink:
hh = h.get('href')
with open("zi6.txt", 'a', encoding='utf-8') as ff: # 如果filename不存在会自动创建, 'w'表示写数据,写之前会清空文件中的原有数据!
ff.write(str(hh))
ff.write('\n')
except ValueError:
print('')
except Exception:
print("")
# 没有预先判断到的错误怎么办?
# ZeroDivisionError
finally:
# 无论是否有异常,都会执行的代码
print('')
# print(hh)
# 引号必须挨着边界
# 筛选子链接中的title和链接
def pa2():
with open('zi6.txt', 'r', encoding='gbk') as f:
str = f.read()
f1 = str.split('\n')
for h1 in f1:
try:
headers = {
'user-agent': 'Mzilla/5.0'
}
html = urlopen(h1)
bs = BeautifulSoup(html, 'html.parser') # 解析网页
hyperlink = bs.find_all('title')
for h in hyperlink:
# zz=h, ':', k
# zz=str(h)
print(h, ":", h1)
except ValueError:
print('')
except Exception:
print("")
# 没有预先判断到的错误怎么办?
# ZeroDivisionError
finally:
# 无论是否有异常,都会执行的代码
print('')
到这里我的只管爬虫项目就已经写完了,里面加入了我的解释,我也是服了,前几次发的代码我的电脑上可以运行,但是我自己尝试着从网页上面搜素到了之后然后复制,结果却用不了,原来是非得用只管代码片段发出来才能使用,众所周知,重写一个代码会比该代码要简单,我上面发的那个代码我也是才发现又那么一些不足,所以才重新补发了这个,希望大家喜欢,并点赞,让更多的人知道有像小编这样的非常辛苦的愿意付出的码农。