直接上代码,从百度开始,爬取所有
import requests
from bs4 import BeautifulSoup
headers={'User-Agent':'........'}#写下你的user-agent
pages=set()
#集合可以去重哦,是最简单的去重方法
def getlinks(url):
html=requests.get(url,headers=headers)
selector=BeautifulSoup(html.text,'lxml')
objs=selector.findAll('a',href=re.compile('.*?baidu.com.*?'})#我们寻找baidi页面里的所有符合条件的a标签,返回一个列表
for link in objs:#对列表进行迭代
if link.attrs['href'] not in pages:#确保遇到新页面,当然我们上面创建了一个空的集合,也可以省略这一步
newpage=link.attrs['src']#提取a标签下的url
pages.add(newpage)#把url添加到集合里
print('---get a new link---',nwepage)
print('len:',len(pages))
getlinks(newpage)#从新的页面在此开启爬取
url='https://www.baidu.com'
getlinks(url)#运行代码
这段代码很长时间不会停下来,当然你可以在中间添加条件,比如len(pages)>20的时候break。