背景说明:最近在做一个网站推广的项目,想获取这个网站的所有url地址,生成一个网站地图,就拿python练练手。
思路:爬网站所有url,也就是获取网页-》分析网页-》提取所有a标签-》最终获取url,再将获取的url作为源信息来查找新的url。
从网页中提取a标签属性值最快的方法有两个,一个是正则,一个用CSS选择器。
BeautifulSoup非常适合干这个事,可以参考python模块:BeautifulSoup学习手账。
import requests
from bs4 import BeautifulSoup
site = "https://www.tianshengdiyi.cn"
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/60.0.3112.78 Safari/537.36'}
# 第一次遍历首页所有url
def get_url_lists(site_url):
urla = []
global headers
rs = requests.get(site_url, headers=headers)
soup = BeautifulSoup(rs.text, 'html.parser')
url_list = soup.select('a')
for i in url_list:
if i.ha