美文网首页
假期充电--爬虫第一天

假期充电--爬虫第一天

作者: 小喵周周 | 来源:发表于2017-12-23 08:39 被阅读0次

爬虫第一天从内链外链学起,上一个简单的获取内链外链程序,现阶段的疑惑是我认为这个程序是以外链作为内链节节寻找,不知道这样的意义在哪里。

from urllib.request import urlopen
from urllib.parse import urlparse
from bs4 import BeautifulSoup
import random
import datetime
import re
pages = set()
random.seed(datetime.datetime.now())
#获取页面内部链接
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.href['href'].startswith("/")):
                    internalLinks.append(includeUrl+link.attrs['href'])
                else:
                    internalLinks.append(link.attrs['href'])
    return internalLinks

def getExtrenalLinks(bsObj,excludeurl):
    extrenalLinks=[]
    #查找http开头和www开头的域名
    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 extrenalLinks:
                    extrenalLinks.append(link.attrs['href'])
    return extrenalLinks

def getRandomExtrnalLink(startingPage):
    html=urlopen(startingPage)
    bsObj= BeautifulSoup(html,"html.parser")
    extrenalLinks = getExtrenalLinks(bsObj,urlparse(startingPage).netloc)
    if len(extrenalLinks)==0:
        print("没有找到外链")
        domain =urlparse(html).scheme+"://"+urlparse(startingPage).netloc
        internalLinks=getInternalLinks(bsObj,domain)
        return getRandomExtrnalLink(internalLinks[random.randint(0,len(internalLinks)-1)])
    else:
        return  extrenalLinks[random.randint(0,len(extrenalLinks)-1)]

def followExtrenalOnly(startingPage):
    externalLink =getRandomExtrnalLink(startingPage)
    #externalLink = "https://en.wikipedia.org/wiki/Intelligence_agency"
    print("Random extranal link is"+externalLink)
    followExtrenalOnly(externalLink)

# def main():
#     followExtrenalOnly("http://en.wikipedia.org")
#     print('End')
#     if __name__ == '__main__':
#         main()
followExtrenalOnly("https://en.wikipedia.org/wiki/Main_Page")

(作者:语落心生 链接:https://www.jianshu.com/p/ec0cbe424353)

正则表达式.png

Ctrl+Shift+I google开发者工具
开始像股票分析方面靠近:

from urllib.request import urlopen as uu
import re

url=["http://fund.eastmoney.com/000051.html",
     "http://fund.eastmoney.com/213008.html",
     "http://fund.eastmoney.com/000173.html",
     "http://fund.eastmoney.com/000477.html"]

find_re = re.compile(r'<dd class="dataNums"><span class=".+?">(.+?)</span>',re.DOTALL)
html_re = re.compile(r'http://fund.eastmoney.com/(.+?).html',re.DOTALL)
time_re = re.compile(r'<span id="gz_gztime">(.+?)</span>',re.DOTALL)

for ul in url:   
    html=uu(ul).read()
    html=html.decode('utf-8')#python3
    print ("基金代码:" + str(html_re.findall(ul)))
    print ("单位净值:" + str(find_re.findall(html)))    
    print ("最后更新时间:" + str(time_re.findall(html)))
    print ('')
运行结果.png

这是一个用正则表达式爬取基金简单信息的程序,没有动态没用beautufulsoup。接下来先看看需要分析什么,可能要涉及机器学习,最终目的是有一些统计意义的小程序。

继续撸知乎找灵感!

from urllib.request import urlopen
from bs4 import BeautifulSoup

quote_page = 'http://www.bloomberg.com/quote/SPX:IND'
page = urlopen(quote_page)
soup = BeautifulSoup(page, "html.parser")
name_box = soup.find("h1", attrs={"class": "name"})
name = name_box.text.strip() # strip() is used to remove starting and trailing
print (name)

price_box = soup.find("div", attrs={"class":"price"})
price = price_box.text
print (price)

这是一段爬bloomberg上静态信息的美丽soup,接下来要知道做什么才要紧!

相关文章

  • 假期充电--爬虫第一天

    爬虫第一天从内链外链学起,上一个简单的获取内链外链程序,现阶段的疑惑是我认为这个程序是以外链作为内链节节寻找,不知...

  • 假期充电--爬虫第二天

    前程无忧爬职位信息正则表达式(from http://www.cnblogs.com/Beyond-Ricky/p...

  • 假期充电

    这个假期我报了演讲班,每天忙于打卡,陪伴双方家人,一晃假期就已经倒数第二天了。 今年疫情从我3月份开始学习和实践心...

  • 假期充电

    许多时候,我们总是想着要如何提升自己,但当你拿起手机不肯放下时,一天天的时间就这么消磨过去了! 知...

  • 假期充电!

    虽说是暑假,但是,好像自己比平时都忙! 一日三餐自不必说,孩子在家,也不能太随便,前后两个小时,三顿,就是六个小时...

  • 年根儿

    就快放假了,放假第一天利用一上午打扫卫生,下午及整个假期做些事,忙了一年的工作,利用假期充充电,放松心...

  • 开启充电模式

    暑假生活即将拉开序幕,老师们如何度过一个愉快而有意义的假期呢?——充电,开启假期充电模式 假期是...

  • 充电假期(杂文)

    哇哈,假期就要开始啦~ 最近特别喜欢跟别人交流,喜欢听对方说话,聊天的过程中常常可以得到意想不到的惊喜,这对于我来...

  • 充电假期(日记)

    2014.10.02 厦门大学的同学来找我跟小冉玩,我们出去吃饭看电影聊天,在泉州这座寂寞的城市走走停停,心情也起...

  • 充电假期(计划)

    充电假期转眼之间就已经过了四天了,所以从明天开始,我就要正式开始好好读书了。 这个假期给我带来了些什么呢?是片刻的...

网友评论

      本文标题:假期充电--爬虫第一天

      本文链接:https://www.haomeiwen.com/subject/rnjfgxtx.html