python爬取方式_Python3 实现爬取网站下所有URL方式
获取首页元素信息:
目标 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方式相关推荐
- python爬豆瓣电视剧_Python3.5爬取豆瓣电视剧数据并且同步到mysql中
#!/usr/local/bin/python#-*- coding: utf-8 -*-#Python: 3.5#Author: zhenghai.zhang@xxx.com#Program: 爬取 ...
- python爬虫今日头条_Python3从零开始爬取今日头条的新闻【一、开发环境搭建】...
所谓爬虫,就是通过编程的方式自动从网络上获取自己所需的资源,比如文章.图片.音乐.视频等多媒体资源.通过一定的方式获取到html的内容,再通过各种手段分析得到自己所需的内容,比如通过Beautiful ...
- python写sql语句_python3将变量写入SQL语句的实现方式
试了一下python操作数据库,准备将前端传回来的用户名和密码写入表中 试了半天不会把变量加在在sql语句里面 网上搜索了一下,要用元组来传递多个参数sql = "insert into u ...
- 【Python Flask】使用Ajax向后台提交数据(拼接url方式)
使用拼接url的方式传数据,不是很优雅,也不安全.有时间的时候,还是学习一下如何使用post传数据吧- JS保存按钮调用函数 //保存 function save() {var urlStr = '{ ...
- python下载图片超时_python3在极端网络波动下的智能判断下载
作者: 孔扎根 简介: 工作13余载,现任高级爬虫工程师,在工作中积累了丰富的数据库.ETL及python开发方面的经验. 座佑铭:美的东西都喜欢, 好的东西都想要, 美好的东西是我追求的目标 Pyt ...
- python学爬虫书籍_Python3实战爬虫之爬取京东图书的图文详解
最近在学习python3,下面这篇文章主要给大家介绍了关于Python3实战爬虫之爬取京东图书图片的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下 ...
- python刷直播人气_python3爬取斗鱼某些版块的主播人气
python 3爬取斗鱼某些版块的主播人气 1.爬虫版块 import Test3 import urllib.request from bs4 import BeautifulSoup import ...
- python画罗小黑_Python3+requests库爬取豆瓣《罗小黑战记》评论
贴一下抓到的评论,最后几条的 本渣是在校学生(非计算机相关),今年上半年接触Python,然后暑假开始学着写爬虫. 新手,本文如有错误,谢谢指正. 这个爬虫开始思路有点乱,现在比较清晰了 思路:req ...
- Python工具 | 9个用来爬取网络站点的 Python 库
1️⃣Scrapy 一个开源和协作框架,用于从网站中提取所需的数据. 以快速,简单,可扩展的方式. 官网 2️⃣cola 一个分布式爬虫框架. GitHub 3️⃣Demiurge 基于 PyQuer ...
- python爬虫提取人名_python爬虫—爬取英文名以及正则表达式的介绍
python爬虫-爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个csv ...
最新文章
- k8s中使用MySQL共享存储_Kubernetes创建挂载共享存储的容器
- linux未使用磁盘空间满,linux磁盘空间用满的处理方法
- 2018年全国高校教师“Python编程、应用及华为大数据”培训班
- PCA 主成分分析Principal components analysis
- Chrome渲染Transition时页面闪动Bug
- Codeforce 697A - Pineapple Incident
- 【学习笔记】n皇后问题的解决方法+改进代码(回溯递归)
- 火山应用系列之调用炫彩模块自制登陆与主窗口
- canvas绘画时钟
- 人脸识别:AI产品经理需要了解的CV通识
- 测试开发面试题汇总(自用)
- Selenium控制已打开的chrome、IE浏览器
- linux做gpt分区,Linux下的GPT分区
- 程序员之富爸爸穷爸爸思考
- 浅谈可带病投保的“税优险”
- qrcode生成二维码
- 基于采样的路径规划算法RRT和代码实现
- 通信原理 | 通信的基本概念和通信系统的组成
- 干货 :深度学习的主流模型及应用
- 从匿名聊聊被封停,看微信小程序坚持的线下策略
热门文章
- 181112每日一句
- NASA-TLX (Task Load Index)量表学习总结
- unity打开htc vive 的前置摄像头 和 实现增强现实效果
- Atitit 管理体制 编号制 1.数字编码有何好处 数字编码有何好处 1、归档整理方便,特别在电子管理系统中; 2、数字编码更容易进行管理,无论谁进行的编码都是一样,管理方便,人员无论怎么换,程序
- Atitit maven 编译与资源文件与web目录自定义配置 与eclipse的集成与war包打包 1.1. 配置webapp目录 plugin设置 webappDirectory	1 1.2.
- Atitit 深入理解软件的本质 attilax总结 软件三原则三次原则是DRY原则和YAGNI原则的折
- Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
- paip.提升效率----几款任务栏软件
- 京东量化平台宣告下线,其他平台该何去何从?
- 毕设题目:Matlab水果识别分级