#%%
# -*- coding: utf-8 -*
#__author__ = 'Administrat
#coding=utf-8
from urllib.request import urlopen
from urllib.parse import urlparse
from bs4 import BeautifulSoup
import re
import datetime
import random
from urllib import request
pages = set()
random.seed(datetime.datetime.now())
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
#获取页面所有内链的列表
def getInternalLinks(bsObj, includeUrl):
includeUrl = urlparse(includeUrl).scheme+"://"+urlparse(includeUrl).netloc
internalLinks = []
#找出所有以“/”开头的链接
for link in bsObj.findAll("a", href=re.compile("^(/|.*"+includeUrl+")")):
if link.attrs['href'] is not None:
if link.attrs['href'] not in internalLinks:
if(link.attrs['href'].startswith("/")):
internalLinks.append(includeUrl+link.attrs['href'])
else:
internalLinks.append(link.attrs['href'])
return internalLinks
#获取页面所有外链的列表
def getExternalLinks(bsObj, excludeUrl):
externalLinks = []
#找出所有以“http”或者“www”开头且不包含当前URL的链接
for link in bsObj.findAll("a", href=re.compile("^(http|www)((?!"+excludeUrl+").)*$")):
if link.attrs['href'] is not None:
if link.attrs['href'] not in externalLinks:
externalLinks.append(link.attrs['href'])
return externalLinks
def getRandomExternalLink(startingPage):
req=request.Request(startingPage,headers=headers)
html=urlopen(req)
bsObj=BeautifulSoup(html.read(),"html.parser")
externalLinks = getExternalLinks(bsObj, urlparse(startingPage).netloc)
if len(externalLinks) == 0:
print("没有外部链接,准备遍历整个网站")
domain = urlparse(startingPage).scheme+"://"+urlparse(startingPage).netloc
internalLinks = getInternalLinks(bsObj, domain)
return getRandomExternalLink(internalLinks[random.randint(0,len(internalLinks)-1)])
else:
return externalLinks[random.randint(0, len(externalLinks)-1)]
def followExternalOnly(startingSite):
externalLink = getRandomExternalLink(startingSite)
print("随机外链是: "+externalLink)
followExternalOnly(externalLink)
#收集网站上发现的所有外链列表
allExtLinks = set()
allIntLinks = set()
def getAllExternalLinks(siteUrl):
domain = urlparse(siteUrl).scheme+"://"+urlparse(siteUrl).netloc
internalLinks = getInternalLinks(bsObj,domain)
externalLinks = getExternalLinks(bsObj,domain)
f = open('result.txt','w')
#收集外链
for link in externalLinks:
if link not in allExtLinks:
allExtLinks.add(link)
#print(link)
f.writelines(link+'\n')
print("即将获取的外部链接的URL是:"+link)
#收集内链
for link in internalLinks:
if link not in allIntLinks:
print("即将获取内部链接的URL是:"+link)
allIntLinks.add(link)
getAllExternalLinks(link)
f.writelines(link+'\n')
#followExternalOnly("http://bbs.3s001.com/forum-36-1.html")
#allIntLinks.add("http://bbs.3s001.com/forum-36-1.html")
getAllExternalLinks("http://www.zzu.edu.cn/") 相关推荐
python爬虫(2.获取网页外链与内链)
from urllib.request import urlopen from urllib.parse import urlparse from bs4 import BeautifulSoup import re import datetime import random pages = set() random.seed(datetime.datetime.now()) #获取页面内链
chatgpt赋能python:用Python自动爬取链接的内容——提升SEO效果的利器
Python是一种功能强大、易于上手的编程语言,可应用于多种任务中,包括自动爬取和处理网络数据。Python爬取通常用于自动从网络页面上爬取或提取笔记“页面元素”—这些元素包含在HTML(网页标记语言)格式的文档中,HTML是构成绝大部分网页的一种语言。页面元素包括文本、图片、链接、视频和音频等。通过使用Python爬取技术,您可以找到和提取这些页面元素,以便更轻松地获取网站内容并补充您的页面。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt。
链家二手房信息爬取(内附完整代码)
链家二手房信息爬取1.简介2. 爬虫思路2.1 网页分析2.2 详情页分析2.3 不同页码的爬取2.4 解决链家只显示100页数据2.5 简单的反爬与进度条显示3. 总结 1.简介 最近帮同学爬取了链家在售二手房的信息,这是本人学习爬虫以来爬取数据最多的一次,就想着写个博客记录一下。 本次爬虫是利用python+jupyter notebook实现的,用到的第三方库如下: import pandas as pd # 数据存储 import requests # 网页内容获取 import re #
python爬虫获取网页的外链和内链(巨详细)
xxx = {scheme(网络协议),netloc(服务器位置),path(路径),params(参数),query(查询条件),fragment(片段)}.......这个正则表达式弄了半天也搞不懂,这里我就理解为匹配includeUrl+以/开头的内链接 或者 是以/开头的链接。内链:同一网站域名下的内容页面之间的互相链接(自己网站的内容链接到自己网站的内部页面,也称之为站内链接)外链:在自己的网站导入别人的网站(比如有些网站加入了百度这个链接,而百度就是这个网站的外链)
用python爬取需要登录的网站
如何爬取需要登录的网站创建一个session用fiddler抓取请求参数输入模拟浏览器发起请求获取userkey备用登录后,开心地请求该网站的其他页面 假如要爬取某个网页,但是该网页要登录后才能进行访问,刚好登录的时候不需要验证码,那么可以用如下方法 创建一个session 当用浏览器登录网站后,服务器会自动创建一个session对象,在session的有效期内,session对象中的变量在整个用...
python爬虫——通过API爬取动态网站的数据
在我前面的博客中,通过利用python的requests库和BeautifulSoup库对静态网站进行爬取,但如果遇到动态网站怎么办呢?接下来我们试着通过API来对动态网站进行爬取想要的数据。 目录(一) 动态网站和静态网站的区别与robots.txt(二) 爬取QQ音乐——“雨爱”的一页评论(三) 爬取QQ音乐——“雨爱”的多页评论 (一) 动态网站和静态网站的区别与robots.txt 在爬取...
Python文件下载爬虫,解析如何跳转真实下载链接下载文件素材
爬虫是python的拿手好戏,应用python可以很方便的获取到我们需要的资源,文件内容也是可以获取到的,时间与你想要获取到的资源以及网速有关,拒绝嘴炮,实战说话,这里以一个网站撸一把为例...
python爬取链家北京二手房信息(BeautifulSoup)
2022.3.21更新:本博客当时写的时候链家网页中一些属性或需要的信息名称都与参考博客不同,网站中的结构等会经常变化,因此如果直接使用本博客代码可能会导致采集不到需要信息,csv文件为空的情况,希望各位看懂本博客后再去网站根据各自需要和网站此时的设置等修改代码,爬取信息。 一、准备 使用的包有:urllib.request、bs4、pandas、numpy、re、time urllib.request:用来打开和浏览url中内容 bs4:爬取网页 pandas:生成数据表,并保存为csv文件
python多级网址爬取_【Python】 获取url的多级域名
import refrom urlparse import urlparseclass ExtractLevelDomain():def __init__(self):self.topHostPostfix = ['.com','.la','.io','.co', '.cn','.info','.net', '.org','.me','.mobi', '.us', '.biz','.xxx', '...
用Python爬取2020链家杭州二手房数据
参考着17年这位老兄写的代码:https://blog.youkuaiyun.com/sinat_36772813/article/details/73497956?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242 在此感谢 1.导入库及准备工作 主要用到了三个库,分别用于获取、解析、和操作excel #_*_coding:utf-8_*_ # 导入开发模块 import requests # 用
python 爬虫实践 (爬取链家成交房源信息和价格)
简单介绍 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode;工具包:request 爬取页面数据,然后redis 实现数据缓存,lxml 实现页面数据的分析,提取我们想要的数据,然后多线程和多进程提升爬取速度,最后,通过celery 框架实现分布式爬取,并实际部署下,下面就按这个逻辑顺序,进行介绍; request爬取页面数据...
Python第一个爬虫,简单爬起网页中超链接
1、安装beautifulsoup4库 python -m pip install beautifulsoup4 或者使用源码安装 C:\Users\Administrator\Desktop\Test_Python>python -c “import bs4” 2、查看要爬取网页结构 可以发现里面有href属性的标签名有link或者a,那么在抓取地址的时候这两种情况都要考虑到… 3、编写...
【Python网络爬虫】爬取网站图片实战
本文简要介绍如何利用Python爬取网站数据图片,仅供学习交流。
python爬取整个网站_Python爬取网站上的内链和外链
#%%# -*- coding: utf-8 -*#__author__ = 'Administrat#coding=utf-8from urllib.request import urlopenfrom urllib.parse import urlparsefrom bs4 import BeautifulSoupimport reimport datetimeimport randomfro...
python数据处理与分析案例,python如何进行数据处理
大家好,本文将围绕基于python的数据处理案例展开说明,python数据处理与分析案例是一个很多人都想弄明白的事情,想搞清楚python如何进行数据处理需要先了解以下几个事情。大家好,小编来为大家解答以下问题,python数据处理案例步骤及其代码,python数据处理与分析教程,今天让我们一起来看看吧!哈喽~今天学习记录的是数据分析实训小案例。就用这个案例来好好巩固一下 python 数据分析三剑客。
SRT公网点对点传输及搭建SRT流媒体服务器
SRT是一种开源传输技术,它是基于UDP协议的,与RTMP不同的是,它具有高码率低延迟的传输特性,加强了在复杂不稳定网络环境中的传输可靠性,提升了不可预测的网络环境上的流传输性能。它不像NDI那样只适用于局域网传输,它更适用于公网环境下的信号传输。 S代表Secure,即安全加密的视频流,R代表Reliable,即具有从数据严重丢包中恢复的可靠性,T代表Transport,即动态适应变化的网络状况。 在音视频数据包传输的过程中,SRT会检测并适应两个传输点之间的实时网络状况,有助于补偿由于网络的拥塞而引起的
python爬虫爬取网站新闻内容植入mysql数据库内案例demo
python爬虫爬取网站新闻内容植入mysql数据库内案例demo!带简单的标签过滤操作。
投研必备工具:Wind(万得)数据库快速入门
Wind数据库对于金融从业者来说是必不可少的一个软件,本文主要介绍了股票和债券的信息查找,帮助后续对数据进行分析,开始学习吧!
python基础教程网易云_手把手教你用Python网络爬虫获取网易云音乐歌曲|python基础教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地。跟着小编运行过代码的筒子们将网易云歌词抓取下来已经不再话下了,在抓取歌词的时候在函数中传入了歌手ID和歌曲名两个参数,其实爬取歌曲也是同样...
F280049C Crossbar X-BAR
X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。
UDS诊断服务基础详解之七-31服务
本节内容主要是讲解诊断服务中的31服务,包含31服务的使用场景,请求报文格式,响应报文格式,以及举例对31服务进行相关的说明
【爬虫实践】用递归获取网站的所有内链和外链
【爬虫实践】用递归获取网站的所有内链和外链 环境:Windows7 +Python3.6+Pycharm2017 目标:从一个网站的顶层开始,爬取该网站所有内链和外链,便于绘制网站地图! 通常网站的深度有5层左右的网页,广度有10个网页,所有大部分网站的页面数量都在10的5次方,就是10万个以内,但是python递归默认限制是1000,这就需要用sys模块的设置突破1000的限制。为了运行控制方便...
『杭电1199』Color the Ball
Problem Description There are infinite balls in a line (numbered 1 2 3 ....), and initially all of them are paint black. Now Jim use a brush paint the balls, every time give two integers a b and follow by a char 'w' or 'b', 'w' denotes the ball from a to
爬虫实战:链家租房数据爬取,实习僧网站数据爬取
前面已经进行了爬虫基础部分的学习,于是自己也尝试爬了一些网站数据,用的策略都是比较简单,可能有些因素没有考虑到,但是也爬取到了一定的数据,下面介绍两个爬过的案例。 爬虫实战链家网站爬取实习僧网站爬取 链家网站爬取 链家网站的爬取不难,我爬取的主要是租房数据,看一下页面: 我需要爬取的字段有房子的名称,小区,面积,朝向,户型,以及房租。 代码比较简单,主要使用了requests和xpath进行爬取...
【异常】Claude Code 在 Windows CMD 中出现重影现象的排查与解决
Windows CMD运行Claude Code时出现文字重影、乱码等问题,原因是传统CMD对现代ANSI终端控制序列支持不足。解决方案包括:1)推荐安装Windows Terminal(完全支持ANSI标准);2)使用PowerShell 7;3)优化CMD设置(启用虚拟终端、UTF-8编码);4)关闭Claude Code视觉特效。建议优先使用Windows Terminal以获得最佳体验,这是最彻底的解决方案。其他方案仅能部分改善或缓解问题。
基于STM32、HAL库的ATMXT1066TD触摸屏控制器驱动程序设计
0x11) // 0x11是ATMXT1066的家族ID。// 最多支持10点触摸。// 足够存储10点触摸数据。
1909



被折叠的 条评论
为什么被折叠?



