获取首页元素信息:

目标 test_URL:http://www.xxx.com.cn/

首先检查元素,a 标签下是我们需要爬取得链接,通过获取链接路径,定位出我们需要的信息

soup = Bs4(reaponse.text, "lxml")

urls_li = soup.select("#mainmenu_top > div > div > ul > li")

首页的URL链接获取:

完成首页的URL链接获取,具体代码如下:

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

def get_first_url():

list_href = []

reaponse = requests.get("http://www.xxx.com.cn", headers=headers)

soup = Bs4(reaponse.text, "lxml")

urls_li = soup.select("#mainmenu_top > div > div > ul > li")

for url_li in urls_li:

urls = url_li.select("a")

for url in urls:

url_href = url.get("href")

list_href.append(head_url+url_href)

out_url = list(set(list_href))

for reg in out_url:

print(reg)

遍历第一次返回的结果:

从第二步获取URL的基础上,遍历请求每个页面,获取页面中的URL链接,过滤掉不需要的信息

具体代码如下:

def get_next_url(urllist):

url_list = []

for url in urllist:

response = requests.get(url,headers=headers)

soup = Bs4(response.text,"lxml")

urls = soup.find_all("a")

if urls:

for url2 in urls:

url2_1 = url2.get("href")

if url2_1:

if url2_1[0] == "/":

url2_1 = head_url + url2_1

url_list.append(url2_1)

if url2_1[0:24] == "http://www.xxx.com.cn":

url2_1 = url2_1

url_list.append(url2_1)

else:

pass

else:

pass

else:

pass

else:

pass

url_list2 = set(url_list)

for url_ in url_list2:

res = requests.get(url_)

if res.status_code ==200:

print(url_)

print(len(url_list2))

递归循环遍历:

递归实现爬取所有url,在get_next_url()函数中调用自身,代码如下:

get_next_url(url_list2)

全部代码如下:

import requests

from bs4 import BeautifulSoup as Bs4

head_url = "http://www.xxx.com.cn"

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

}

def get_first_url():

list_href = []

reaponse = requests.get(head_url, headers=headers)

soup = Bs4(reaponse.text, "lxml")

urls_li = soup.select("#mainmenu_top > div > div > ul > li")

for url_li in urls_li:

urls = url_li.select("a")

for url in urls:

url_href = url.get("href")

list_href.append(head_url+url_href)

out_url = list(set(list_href))

return out_url

def get_next_url(urllist):

url_list = []

for url in urllist:

response = requests.get(url,headers=headers)

soup = Bs4(response.text,"lxml")

urls = soup.find_all("a")

if urls:

for url2 in urls:

url2_1 = url2.get("href")

if url2_1:

if url2_1[0] == "/":

url2_1 = head_url + url2_1

url_list.append(url2_1)

if url2_1[0:24] == "http://www.xxx.com.cn":

url2_1 = url2_1

url_list.append(url2_1)

else:

pass

else:

pass

else:

pass

else:

pass

url_list2 = set(url_list)

for url_ in url_list2:

res = requests.get(url_)

if res.status_code ==200:

print(url_)

print(len(url_list2))

get_next_url(url_list2)

if __name__ == "__main__":

urllist = get_first_url()

get_next_url(urllist)

以上这篇Python3 实现爬取网站下所有URL方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

python爬取方式_Python3 实现爬取网站下所有URL方式相关推荐

  1. python爬豆瓣电视剧_Python3.5爬取豆瓣电视剧数据并且同步到mysql中

    #!/usr/local/bin/python#-*- coding: utf-8 -*-#Python: 3.5#Author: zhenghai.zhang@xxx.com#Program: 爬取 ...

  2. python爬虫今日头条_Python3从零开始爬取今日头条的新闻【一、开发环境搭建】...

    所谓爬虫,就是通过编程的方式自动从网络上获取自己所需的资源,比如文章.图片.音乐.视频等多媒体资源.通过一定的方式获取到html的内容,再通过各种手段分析得到自己所需的内容,比如通过Beautiful ...

  3. python写sql语句_python3将变量写入SQL语句的实现方式

    试了一下python操作数据库,准备将前端传回来的用户名和密码写入表中 试了半天不会把变量加在在sql语句里面 网上搜索了一下,要用元组来传递多个参数sql = "insert into u ...

  4. 【Python Flask】使用Ajax向后台提交数据(拼接url方式)

    使用拼接url的方式传数据,不是很优雅,也不安全.有时间的时候,还是学习一下如何使用post传数据吧- JS保存按钮调用函数 //保存 function save() {var urlStr = '{ ...

  5. python下载图片超时_python3在极端网络波动下的智能判断下载

    作者: 孔扎根 简介: 工作13余载,现任高级爬虫工程师,在工作中积累了丰富的数据库.ETL及python开发方面的经验. 座佑铭:美的东西都喜欢, 好的东西都想要, 美好的东西是我追求的目标 Pyt ...

  6. python学爬虫书籍_Python3实战爬虫之爬取京东图书的图文详解

    最近在学习python3,下面这篇文章主要给大家介绍了关于Python3实战爬虫之爬取京东图书图片的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下 ...

  7. python刷直播人气_python3爬取斗鱼某些版块的主播人气

    python 3爬取斗鱼某些版块的主播人气 1.爬虫版块 import Test3 import urllib.request from bs4 import BeautifulSoup import ...

  8. python画罗小黑_Python3+requests库爬取豆瓣《罗小黑战记》评论

    贴一下抓到的评论,最后几条的 本渣是在校学生(非计算机相关),今年上半年接触Python,然后暑假开始学着写爬虫. 新手,本文如有错误,谢谢指正. 这个爬虫开始思路有点乱,现在比较清晰了 思路:req ...

  9. Python工具 | 9个用来爬取网络站点的 Python 库

    1️⃣Scrapy 一个开源和协作框架,用于从网站中提取所需的数据. 以快速,简单,可扩展的方式. 官网 2️⃣cola 一个分布式爬虫框架. GitHub 3️⃣Demiurge 基于 PyQuer ...

  10. python爬虫提取人名_python爬虫—爬取英文名以及正则表达式的介绍

    python爬虫-爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个csv ...

最新文章

  1. k8s中使用MySQL共享存储_Kubernetes创建挂载共享存储的容器
  2. linux未使用磁盘空间满,linux磁盘空间用满的处理方法
  3. 2018年全国高校教师“Python编程、应用及华为大数据”培训班
  4. PCA 主成分分析Principal components analysis
  5. Chrome渲染Transition时页面闪动Bug
  6. Codeforce 697A - Pineapple Incident
  7. 【学习笔记】n皇后问题的解决方法+改进代码(回溯递归)
  8. 火山应用系列之调用炫彩模块自制登陆与主窗口
  9. canvas绘画时钟
  10. 人脸识别:AI产品经理需要了解的CV通识
  11. 测试开发面试题汇总(自用)
  12. Selenium控制已打开的chrome、IE浏览器
  13. linux做gpt分区,Linux下的GPT分区
  14. 程序员之富爸爸穷爸爸思考
  15. 浅谈可带病投保的“税优险”
  16. qrcode生成二维码
  17. 基于采样的路径规划算法RRT和代码实现
  18. 通信原理 | 通信的基本概念和通信系统的组成
  19. 干货 :深度学习的主流模型及应用
  20. 从匿名聊聊被封停,看微信小程序坚持的线下策略

热门文章

  1. 181112每日一句
  2. NASA-TLX (Task Load Index)量表学习总结
  3. unity打开htc vive 的前置摄像头 和 实现增强现实效果
  4. Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
  5. Atitit maven 编译与资源文件与web目录自定义配置 与eclipse的集成与war包打包 1.1. 配置webapp目录 plugin设置 webappDirectory 1 1.2.
  6. Atitit 深入理解软件的本质 attilax总结 软件三原则三次原则是DRY原则和YAGNI原则的折
  7. Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
  8. paip.提升效率----几款任务栏软件
  9. 京东量化平台宣告下线,其他平台该何去何从?
  10. 毕设题目:Matlab水果识别分级