导航:首页 > 编程语言 > 获取全网网站列表python

获取全网网站列表python

发布时间:2024-08-19 01:54:23

Ⅰ 濡备綍鎶揿彇缃戦〉涓婄殑鏁版嵁(濡备綍浣跨敤python杩涜岀绣椤垫暟鎹鎶揿彇)

鍦ㄥ綋浠娄俊鎭鐖嗙偢镄勬椂浠o纴缃戦〉涓婅暣钘忕潃澶ч噺镄勬暟鎹锛屽逛簬璁稿氶嗗烟镄勭爷绌跺拰搴旂敤𨱒ヨ达纴銮峰彇缃戦〉涓婄殑鏁版嵁鏄闱炲父閲嶈佺殑銆侾ython浣滀负涓绉岖亩鍗曟槗瀛︿笖锷熻兘寮哄ぇ镄勭紪绋嬭瑷锛岃骞挎硾搴旂敤浜庣绣椤垫暟鎹鎶揿彇銆傛湰鏂囧皢浠嬬粛濡备綍浣跨敤Python杩涜岀绣椤垫暟鎹鎶揿彇镄勬搷浣沧ラゃ

涓銆佸畨瑁匬ython鍜岀浉鍏冲簱

瑕佷娇鐢≒ython杩涜岀绣椤垫暟鎹鎶揿彇锛岄栧厛闇瑕佸畨瑁匬ython瑙i喷鍣ㄣ傚彲浠ヤ粠Python瀹樻柟缃戠珯涓嬭浇骞跺畨瑁呮渶鏂扮殑Python鐗堟湰銆傚畨瑁呭畬鎴愬悗锛岃缮闇瑕佸畨瑁呬竴浜涚浉鍏崇殑Python搴掳纴濡俽equests銆乥eautifulsoup銆乻elenium绛夈傚彲浠ヤ娇鐢╬ip锻戒护𨱒ュ畨瑁呰繖浜涘簱锛屼緥濡傚湪锻戒护琛屼腑杈揿叆浠ヤ笅锻戒护𨱒ュ畨瑁卹equests搴掳细

```

pipinstallrequests

```

浜屻佷娇鐢╮equests搴撹幏鍙栫绣椤靛唴瀹

requests鏄涓涓锷熻兘寮哄ぇ涓旀槗浜庝娇鐢ㄧ殑HTTP搴掳纴鍙浠ョ敤𨱒ュ彂阃丠TTP璇锋眰骞惰幏鍙栫绣椤靛唴瀹广备笅闱㈡槸涓涓浣跨敤requests搴撹幏鍙栫绣椤靛唴瀹圭殑绀轰緥浠g爜锛

```python

importrequests

url="https://www.example.com"

response=requests.get(url)

html=response.text

print(html)

```

鍦ㄨ繖涓绀轰緥涓锛屾垜浠棣栧厛瀵煎叆浜唕equests搴掳纴铹跺悗鎸囧畾浜呜佽幏鍙栫殑缃戦〉URL銆备娇鐢╮equests.get()鏂规硶鍙戦丢ET璇锋眰锛屽苟灏呜繑锲炵殑鍝嶅簲瀵硅薄璧嫔肩粰response鍙橀噺銆傛渶钖庯纴阃氲繃response.text灞炴ц幏鍙栫绣椤电殑鍐呭癸纴骞舵墦鍗拌緭鍑恒

涓夈佷娇鐢╞eautifulsoup搴撹В鏋愮绣椤靛唴瀹

beautifulsoup鏄涓涓鐢ㄤ簬瑙f瀽HTML鍜孹ML鏂囨。镄凯ython搴掳纴鍙浠ユ柟渚垮湴浠庣绣椤典腑鎻愬彇镓闇镄勬暟鎹銆备笅闱㈡槸涓涓浣跨敤beautifulsoup搴撹В鏋愮绣椤靛唴瀹圭殑绀轰緥浠g爜锛

```python

frombs4importBeautifulSoup

soup=BeautifulSoup(html,"html.parser")

title=soup.title.text

print(title)

```

鍦ㄨ繖涓绀轰緥涓锛屾垜浠棣栧厛瀵煎叆浜咮eautifulSoup绫伙纴铹跺悗灏嗕箣鍓嶈幏鍙栧埌镄勭绣椤靛唴瀹筯tml浣滀负鍙傛暟浼犻掔粰BeautifulSoup绫荤殑鏋勯犲嚱鏁帮纴鍒涘缓涓涓狟eautifulSoup瀵硅薄soup銆傞氲繃soup.title.text灞炴у彲浠ヨ幏鍙栫绣椤电殑镙囬桡纴骞舵墦鍗拌緭鍑恒

锲涖佷娇鐢╯elenium搴撴ā𨰾熸祻瑙埚櫒琛屼负

selenium鏄涓涓镊锷ㄥ寲娴嬭瘯宸ュ叿锛屼篃鍙浠ョ敤𨱒ユā𨰾熸祻瑙埚櫒琛屼负杩涜岀绣椤垫暟鎹鎶揿彇銆备娇鐢╯elenium搴揿彲浠ユ墽琛孞avaScript浠g爜銆佹ā𨰾熺偣鍑绘寜阍銆佸~鍐栾〃鍗旷瓑镎崭綔銆备笅闱㈡槸涓涓浣跨敤selenium搴撴ā𨰾熸祻瑙埚櫒琛屼负镄勭ず渚嬩唬镰侊细

```python

fromseleniumimportwebdriver

driver=webdriver.Chrome()

driver.get(url)

button=driver.find_element_by_xpath("//button[@id='btn']")

button.click()

```

鍦ㄨ繖涓绀轰緥涓锛屾垜浠棣栧厛瀵煎叆浜吣ebdriver绫伙纴铹跺悗鍒涘缓涓涓狢hrome娴忚埚櫒瀵硅薄driver銆傞氲繃driver.get()鏂规硶镓揿紑鎸囧畾镄勭绣椤点傛帴涓嬫潵锛屼娇鐢╠river.find_element_by_xpath()鏂规硶镓惧埌椤甸溃涓婄殑鎸夐挳鍏幂礌锛屽苟浣跨敤click()鏂规硶妯℃嫙镣瑰嚮鎸夐挳镄勬搷浣溿

浜斻佸叾浠栧父鐢ㄧ殑缃戦〉鏁版嵁鎶揿彇鎶宸

闄や简涓婅堪浠嬬粛镄勫熀链镎崭綔澶栵纴杩樻湁涓浜涘父鐢ㄧ殑缃戦〉鏁版嵁鎶揿彇鎶宸у彲浠ユ彁楂樻姄鍙栨晥鐜囧拰鍑嗙‘镐с备緥濡傦纴鍙浠ヤ娇鐢ㄦe垯琛ㄨ揪寮忔潵鍖归厤鍜屾彁鍙栫壒瀹氭牸寮忕殑鏁版嵁锛涘彲浠ヤ娇鐢ㄤ唬鐞嗘湇锷″櫒𨱒ラ殣钘廔P鍦板潃鍜屾彁楂樿块梾阃熷害锛涘彲浠ヤ娇鐢ㄥ氱嚎绋嬫垨寮傛IO𨱒ュ苟鍙戞姄鍙栧氢釜缃戦〉绛夈

Ⅱ 如何利用Python抓取静态网站及其内部资源

这个非常闭册塌简单,requests+BeautifulSoup组合就可以轻松实现,下轿圆面我简单介绍一下,感兴趣的朋友可以自己尝试一下,这里以爬取糗事网络网站数据(静态网站)为例:

1.首先,安装requets模块,这个直接在cmd窗口输入命令“pipinstallrequests”就行,如下:

2.接着安装bs4模块,这个模块包含了BeautifulSoup,安装的话,和requests一样,直接输入安装命令“pipinstallbs4”即可,如下:

3.最后就是requests+BeautifulSoup组合爬取糗事网络,requests用于请求页面,BeautifulSoup用于解析页面,提取数据,主要步骤及截图如下:

这里假设爬取的数据包含如下几个字段,包括用户昵称、内容、好笑数和评论数:

接着打开对应网页源码,就可以直接看到字段信息,内容如下,嵌套在各个标签中,后面就是解析这些标签提取数据:

基于上面网页内容,测试代码如下,非常简单,直接find对应标签,提取文本内容即可:

程序运行截图如下,已经成功抓取到网站数据:

至此,我们就完成了使用python来爬去静态网站。总的来说,整个过程非常简单,也是最基本的爬虫内容,只要你有一定的python基础,熟悉一下上面的示例,很快就能掌握的,当然,你也可以使用urllib,正则表达式匹配等,都行,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以姿段搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

Ⅲ python3 怎么爬取新闻网站

需求:

从门户网站爬取新闻,将新闻标题,作者,时间,内容保存到本地txt中。

用到的python模块:

importre#正则表达式
importbs4#BeautifulSoup4解析模块
importurllib2#网络访问模块
importNews#自己定义的新闻结构
importcodecs#解决编码问题的关键,使用codecs.open打开文件
importsys#1解决不同页面编码问题

其中bs4需要自己装一下,安装方法可以参考:Windows命令行下pip安装python whl包

程序:

#coding=utf-8
importre#正则表达式
importbs4#BeautifulSoup4解析模块
importurllib2#网络访问模块
importNews#自己定义的新闻结构
importcodecs#解决编码问题的关键,使用codecs.open打开文件
importsys#1解决不同页面编码问题

reload(sys)#2
sys.setdefaultencoding('utf-8')#3

#从首页获取所有链接
defGetAllUrl(home):
html=urllib2.urlopen(home).read().decode('utf8')
soup=bs4.BeautifulSoup(html,'html.parser')
pattern='http://w+.jia..com/article/w+'
links=soup.find_all('a',href=re.compile(pattern))
forlinkinlinks:
url_set.add(link['href'])

defGetNews(url):
globalNewsCount,MaxNewsCount#全局记录新闻数量
whilelen(url_set)!=0:
try:
#获取链接
url=url_set.pop()
url_old.add(url)

#获取代码
html=urllib2.urlopen(url).read().decode('utf8')

#解析
soup=bs4.BeautifulSoup(html,'html.parser')
pattern='http://w+.jia..com/article/w+'#链接匹配规则
links=soup.find_all('a',href=re.compile(pattern))

#获取URL
forlinkinlinks:
iflink['href']notinurl_old:
url_set.add(link['href'])

#获取信息
article=News.News()
article.url=url#URL信息
page=soup.find('div',{'id':'page'})
article.title=page.find('h1').get_text()#标题信息
info=page.find('div',{'class':'article-info'})
article.author=info.find('a',{'class':'name'}).get_text()#作者信息
article.date=info.find('span',{'class':'time'}).get_text()#日期信息
article.about=page.find('blockquote').get_text()
pnode=page.find('div',{'class':'article-detail'}).find_all('p')
article.content=''
fornodeinpnode:#获取文章段落
article.content+=node.get_text()+' '#追加段落信息

SaveNews(article)

printNewsCount
break
exceptExceptionase:
print(e)
continue
else:
print(article.title)
NewsCount+=1
finally:
#判断数据是否收集完成
ifNewsCount==MaxNewsCount:
break

defSaveNews(Object):
file.write("【"+Object.title+"】"+" ")
file.write(Object.author+" "+Object.date+" ")
file.write(Object.content+" "+" ")

url_set=set()#url集合
url_old=set()#爬过的url集合

NewsCount=0
MaxNewsCount=3

home='http://jia..com/'#起始位置

GetAllUrl(home)

file=codecs.open("D:\test.txt","a+")#文件操作

forurlinurl_set:
GetNews(url)
#判断数据是否收集完成
ifNewsCount==MaxNewsCount:
break

file.close()

新闻文章结构

#coding:utf-8
#文章类定义
classNews(object):
def__init__(self):
self.url=None
self.title=None
self.author=None
self.date=None
self.about=None
self.content=None

对爬取的文章数量就行统计。

Ⅳ 如何用python爬取网站数据

这里简单介绍一下吧,以抓取网站静态、动态2种数据为慧返拍例,实验环境win10+python3.6+pycharm5.0,主要内容如下:

抓取网站静态数据(数据在网页源码中):以糗事网络网站数据为例

1.这里假设我们抓取的数据如下,主要包括用户昵称、内容、好笑数和评论数这4个字段,如下:

对应的网页源码如下,包含我们所需要的数据:

2.对应网页结构,主要代码如下,很简单,主要用到requests+BeautifulSoup,其中requests用于请求页面,BeautifulSoup用于解析页面:

程序运行截图如下,已经成功爬取到数据:

抓取网站动态数据(数据不在网页源码中,json等文件中):以人人贷网站数据为例

1.这里假设我们爬取的是债券数据,主要包括年利率世型、借款标题、期限、金额和进度这5个字段信息,截图如下:

打开网页源码中,可以发现数据不在网页源码中,按F12抓包分析时,才发现在一个json文件中,如下:

2.获取到json文件的url后,我们就可以爬取对应数据了,这里使用的包与上面类似,因为是json文件,所以还用了json这个包(解析json),主要内容如下:

程序运行截图如下,前羡已经成功抓取到数据:

至此,这里就介绍完了这2种数据的抓取,包括静态数据和动态数据。总的来说,这2个示例不难,都是入门级别的爬虫,网页结构也比较简单,最重要的还是要会进行抓包分析,对页面进行分析提取,后期熟悉后,可以借助scrapy这个框架进行数据的爬取,可以更方便一些,效率更高,当然,如果爬取的页面比较复杂,像验证码、加密等,这时候就需要认真分析了,网上也有一些教程可供参考,感兴趣的可以搜一下,希望以上分享的内容能对你有所帮助吧。

Ⅳ 如何用最简单的Python爬虫采集整个网站

采集网站数据并不难,但是需要爬虫有足够的深度。我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。

Ⅵ 爬虫小白求问python如何爬取天猫京东等网页

大的原则上,在网上能公开访问的可见的数据资料都是有办法爬取到的,天猫和京东上是有部分的订单成交数据的,所以这些也是可以爬取的。某宝中的楚江数据,数据采集工作可以代写爬虫,也可以直接让他们爬取数据,视频,图片,文字都可以。

Ⅶ 如何用最简单的Python爬虫采集整个网站

在之前的文章中Python实现“维基网络六度分隔理论“之基础爬虫,我们实现了在一个网站上随机地从一个链接到另一个链接,但是,如果我们需要系统地把整个网站按目录分类,或者要搜索网站上的每一个页面,我们该怎么办?我们需要采集整个网站,但是那是一种非常耗费内存资源的过程,尤其是处理大型网站时,比较合适的工具就是用一个数据库来存储采集的资源,之前也说过。下面来说一下怎么做。

网站地图sitemap
网站地图,又称站点地图,它就是一个页面,上面放置了网站上需要搜索引擎抓取的所有页面的链接(注:不是所有页面,一般来说是所有文章链接。大多数人在网站上找不到自己所需要的信息时,可能会将网站地图作为一种补救措施。搜索引擎蜘蛛非常喜欢网站地图。
对于SEO,网站地图的好处:
1.为搜索引擎蜘蛛提供可以浏览整个网站的链接简单的体现出网站的整体框架出来给搜索引擎看;
2.为搜索引擎蜘蛛提供一些链接,指向动态页面或者采用其他方法比较难以到达的页面;
3.作为一种潜在的着陆页面,可以为搜索流量进行优化;
4.如果访问者试图访问网站所在域内并不存在的URL,那么这个访问者就会被转到“无法找到文件”的错误页面,而网站地图可以作为该页面的“准”内容。
数据采集
采集网站数据并不难,但是需要爬虫有足够的深度。我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。
很明显,这是一个复杂度增长很快的过程。加入每个页面有10个链接,网站上有5个页面深度,如果采集整个网站,一共得采集的网页数量是105,即100000个页面。
因为网站的内链有很多都是重复的,所以为了避免重复采集,必须链接去重,在Python中,去重最常用的方法就是使用自带的set集合方法。只有“新”链接才会被采集。看一下代码实例:
from urllib.request import urlopenfrom bs4 import BeautifulSoupimport repages = set()def getLinks(pageurl):globalpageshtml= urlopen("" + pageurl)soup= BeautifulSoup(html)forlink in soup.findAll("a", href=re.compile("^(/wiki/)")):if'href' in link.attrs:iflink.attrs['href'] not in pages:#这是新页面newPage= link.attrs['href']print(newPage)pages.add(newPage)getLinks(newPage)getLinks("")
原理说明:程序执行时,用函数处理一个空URL,其实就是维基网络的主页,然后遍历首页上每个链接,并检查是否已经在全局变量集合pages里面,如果不在,就打印并添加到pages集合,然后递归处理这个链接。
递归警告:Python默认的递归限制是1000次,因为维基网络的链接浩如烟海,所以这个程序达到递归限制后就会停止。如果你不想让它停止,你可以设置一个递归计数器或者其他方法。
采集整个网站数据
为了有效使用爬虫,在用爬虫的时候我们需要在页面上做一些事情。我们来创建一个爬虫来收集页面标题、正文的第一个段落,以及编辑页面的链接(如果有的话)这些信息。
第一步,我们需要先观察网站上的页面,然后制定采集模式,通过F12(一般情况下)审查元素,即可看到页面组成。
观察维基网络页面,包括词条和非词条页面,比如隐私策略之类的页面,可以得出下面的规则:
所有的标题都是在h1→span标签里,而且页面上只有一个h1标签。
所有的正文文字都在div#bodyContent标签里,如果我们想获取第一段文字,可以用div#mw-content-text→p,除了文件页面,这个规则对所有页面都适用。
编辑链接只出现在词条页面上,如果有编辑链接,都位于li#ca-edit标签的li#ca-edit→span→a里面。
调整一下之前的代码,我们可以建立一个爬虫和数据采集的组合程序,代码如下:
import redef getLinks(pageUrl):global pageshtml = urlopen("" + pageUrl)soup = BeautifulSoup(html)try:print(soup.h1.get_text())print(soup.find(id="mw-content-text").findAll("p")[0])print(soup.find(id="ca-edit").find("span").find("a").attrs['href'])except AttributeError:print("页面缺少属性")for link in soup.findAll("a", href =re.compile("^(/wiki/)")):if 'href' in link.attrs:#这是新页面newPage = link.attrs['href']print("------------------\n"+newPage)
这个for循环和原来的采集程序基本上是一样的,因为不能确定每一页上都有所有类型的数据,所以每个打印语句都是按照数据在页面上出现的可能性从高到低排列的。
数据存储到MySQL
前面已经获取了数据,直接打印出来,查看比较麻烦,所以我们就直接存到MySQL里面吧,这里只存链接没有意义,所以我们就存储页面的标题和内容。前面我有两篇文章已经介绍过如何存储数据到MySQL,数据表是pages,这里直接给出代码:
import reimport datetimeimport randomimport pymysqlconn = pymysql.connect(host = '127.0.0.1',port = 3306, user = 'root', passwd = '19930319', db = 'wiki', charset ='utf8mb4')cur = conn.cursor()cur.execute("USE wiki")#随机数种子random.seed(datetime.datetime.now())#数据存储def store(title, content):cur.execute("INSERT INTO pages(title, content)VALUES(\"%s\", \"%s\")", (title, content))cur.connection.commit()def getLinks(articleUrl):html = urlopen("" + articleUrl)title = soup.find("h1").get_text()content =soup.find("div",{"id":"mw-content-text"}).find("p").get_text()store(title, content)returnsoup.find("div",{"id":"bodyContent"}).findAll("a",href=re.compile("^(/wiki/)((?!:).)*$"))#设置第一页links =getLinks("/wiki/Kevin_Bacon")try:while len(links)>0:newArticle = links[random.randint(0, len(links)-1)].attrs['href']print (newArticle)links = getLinks(newArticle)finally:cur.close()conn.close()
小结
今天主要讲一下Python中遍历采集一个网站的链接,方便下面的学习。
希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

阅读全文

与获取全网网站列表python相关的资料

热点内容
做程序员好难 浏览:240
晚年程序员的生活 浏览:411
安卓什么型号可以用两年不卡 浏览:188
安卓怎么一边玩游戏一边打电话 浏览:282
体育综合分的算法 浏览:599
用友客户端连服务器P地址 浏览:525
程序员小工具有哪些 浏览:850
android难用 浏览:253
2021金砖论坛数据算法盛宴 浏览:744
职校学计算机出来可以当程序员吗 浏览:478
androidxml命名 浏览:85
批命令if 浏览:101
手机桌面出现安卓图标怎么办 浏览:965
php网站生成app 浏览:731
食色app怎么没法下载了 浏览:324
苹果12跟安卓如何隔空投送 浏览:593
如何在济南人社app上看到账号 浏览:180
服务器ps灯亮是什么原因 浏览:593
安卓上的导航如何操作 浏览:437
程序员如何成长 浏览:497