python搜集整个网站的数据

直接上代码,从百度开始,爬取所有

 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。

猜你喜欢

转载自blog.csdn.net/weixin_42557907/article/details/81121861