加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python爬取w3shcool的JQuery课程并且保存到本地

发布时间:2020-12-17 08:32:00 所属栏目:Python 来源:网络整理
导读:最近在忙于找工作,闲暇之余,也找点爬虫项目练练手,写写代码,知道自己是个菜鸟,但是要多加练习,书山有路勤为径。各位爷有测试坑可以给我介绍个啊,自动化,功能,接口都可以做。 首先呢,我们明确需求,很多同学呢,有事没事就想看看一些技术,比如我想

最近在忙于找工作,闲暇之余,也找点爬虫项目练练手,写写代码,知道自己是个菜鸟,但是要多加练习,书山有路勤为径。各位爷有测试坑可以给我介绍个啊,自动化,功能,接口都可以做。

首先呢,我们明确需求,很多同学呢,有事没事就想看看一些技术,比如我想看看JQuery的语法呢,可是我现在没有网络,手机上也没有电子书,真的让我们很难受,那么别着急啊,你这需求我在这里满足你,首先呢,你的需求是获取JQuery的语法的,那么我在看到这个需求,我有响应的网站那么我们接下来去分析这个网站。http://www.w3school.com.cn/jquery/jquery_syntax.asp 这是语法url, http://www.w3school.com.cn/jquery/jquery_intro.asp 这是简介的url,那么我们拿到很多的url分析到,我们的http://www.w3school.com.cn/jquery是相同的,那么我们在来分析在界面怎么可以获取得到这些,我们可以看到右面有相应的目标栏,那么我们去分析下

我们来看下这些链接,。我们可以吧这些链接和http://www.w3school.com.cn拼接到一起。然后组成我们新的url,

上代码

import urllib.request
from bs4 import BeautifulSoup 
import time
def head():
 headers={
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'
 }
 return headers
def parse_url(url):
 hea=head()
 resposne=urllib.request.Request(url,headers=hea)
 html=urllib.request.urlopen(resposne).read().decode('gb2312')
 return html
def url_s():
 url='http://www.w3school.com.cn/jquery/index.asp'
 html=parse_url(url)
 soup=BeautifulSoup(html)
 me=soup.find_all(id='course')
 m_url_text=[]
 m_url=[]
 for link in me:
  m_url_text.append(link.text)
  m=link.find_all('a')
  for i in m:
   m_url.append(i.get('href'))
 for i in m_url_text:
  h=i.encode('utf-8').decode('utf-8')
  m_url_text=h.split('n')
 return m_url,m_url_text

这样我们使用url_s这个函数就可以获取我们所有的链接。

['/jquery/index.asp','/jquery/jquery_intro.asp','/jquery/jquery_install.asp','/jquery/jquery_syntax.asp','/jquery/jquery_selectors.asp','/jquery/jquery_events.asp','/jquery/jquery_hide_show.asp','/jquery/jquery_fade.asp','/jquery/jquery_slide.asp','/jquery/jquery_animate.asp','/jquery/jquery_stop.asp','/jquery/jquery_callback.asp','/jquery/jquery_chaining.asp','/jquery/jquery_dom_get.asp','/jquery/jquery_dom_set.asp','/jquery/jquery_dom_add.asp','/jquery/jquery_dom_remove.asp','/jquery/jquery_css_classes.asp','/jquery/jquery_css.asp','/jquery/jquery_dimensions.asp','/jquery/jquery_traversing.asp','/jquery/jquery_traversing_ancestors.asp','/jquery/jquery_traversing_descendants.asp','/jquery/jquery_traversing_siblings.asp','/jquery/jquery_traversing_filtering.asp','/jquery/jquery_ajax_intro.asp','/jquery/jquery_ajax_load.asp','/jquery/jquery_ajax_get_post.asp','/jquery/jquery_noconflict.asp','/jquery/jquery_examples.asp','/jquery/jquery_quiz.asp','/jquery/jquery_reference.asp','/jquery/jquery_ref_selectors.asp','/jquery/jquery_ref_events.asp','/jquery/jquery_ref_effects.asp','/jquery/jquery_ref_manipulation.asp','/jquery/jquery_ref_attributes.asp','/jquery/jquery_ref_css.asp','/jquery/jquery_ref_ajax.asp','/jquery/jquery_ref_traversing.asp','/jquery/jquery_ref_data.asp','/jquery/jquery_ref_dom_element_methods.asp','/jquery/jquery_ref_core.asp','/jquery/jquery_ref_prop.asp'],['jQuery 教程','','jQuery 教程','jQuery 简介','jQuery 安装','jQuery 语法','jQuery 选择器','jQuery 事件','jQuery 效果','jQuery 隐藏/显示','jQuery 淡入淡出','jQuery 滑动','jQuery 动画','jQuery stop()','jQuery Callback','jQuery Chaining','jQuery HTML','jQuery 获取','jQuery 设置','jQuery 添加','jQuery 删除','jQuery CSS 类','jQuery css()','jQuery 尺寸','jQuery 遍历','jQuery 祖先','jQuery 后代','jQuery 同胞','jQuery 过滤','jQuery AJAX','jQuery AJAX 简介','jQuery 加载','jQuery Get/Post','jQuery 杂项','jQuery noConflict()','jQuery 实例','jQuery 测验','jQuery 参考手册','jQuery 文档操作','jQuery 属性操作','jQuery CSS 操作','jQuery Ajax','jQuery 数据','jQuery DOM 元素','jQuery 核心','jQuery 属性',''])

这是所有链接还有对应链接的所对应的语法模块的名字。那么我们接下来就是去拼接urls,使用的是str的拼接

 ['http://www.w3school.com.cn//jquery/index.asp','http://www.w3school.com.cn//jquery/jquery_intro.asp','http://www.w3school.com.cn//jquery/jquery_install.asp','http://www.w3school.com.cn//jquery/jquery_syntax.asp','http://www.w3school.com.cn//jquery/jquery_selectors.asp','http://www.w3school.com.cn//jquery/jquery_events.asp','http://www.w3school.com.cn//jquery/jquery_hide_show.asp','http://www.w3school.com.cn//jquery/jquery_fade.asp','http://www.w3school.com.cn//jquery/jquery_slide.asp','http://www.w3school.com.cn//jquery/jquery_animate.asp','http://www.w3school.com.cn//jquery/jquery_stop.asp','http://www.w3school.com.cn//jquery/jquery_callback.asp','http://www.w3school.com.cn//jquery/jquery_chaining.asp','http://www.w3school.com.cn//jquery/jquery_dom_get.asp','http://www.w3school.com.cn//jquery/jquery_dom_set.asp','http://www.w3school.com.cn//jquery/jquery_dom_add.asp','http://www.w3school.com.cn//jquery/jquery_dom_remove.asp','http://www.w3school.com.cn//jquery/jquery_css_classes.asp','http://www.w3school.com.cn//jquery/jquery_css.asp','http://www.w3school.com.cn//jquery/jquery_dimensions.asp','http://www.w3school.com.cn//jquery/jquery_traversing.asp','http://www.w3school.com.cn//jquery/jquery_traversing_ancestors.asp','http://www.w3school.com.cn//jquery/jquery_traversing_descendants.asp','http://www.w3school.com.cn//jquery/jquery_traversing_siblings.asp','http://www.w3school.com.cn//jquery/jquery_traversing_filtering.asp','http://www.w3school.com.cn//jquery/jquery_ajax_intro.asp','http://www.w3school.com.cn//jquery/jquery_ajax_load.asp','http://www.w3school.com.cn//jquery/jquery_ajax_get_post.asp','http://www.w3school.com.cn//jquery/jquery_noconflict.asp','http://www.w3school.com.cn//jquery/jquery_examples.asp','http://www.w3school.com.cn//jquery/jquery_quiz.asp','http://www.w3school.com.cn//jquery/jquery_reference.asp','http://www.w3school.com.cn//jquery/jquery_ref_selectors.asp','http://www.w3school.com.cn//jquery/jquery_ref_events.asp','http://www.w3school.com.cn//jquery/jquery_ref_effects.asp','http://www.w3school.com.cn//jquery/jquery_ref_manipulation.asp','http://www.w3school.com.cn//jquery/jquery_ref_attributes.asp','http://www.w3school.com.cn//jquery/jquery_ref_css.asp','http://www.w3school.com.cn//jquery/jquery_ref_ajax.asp','http://www.w3school.com.cn//jquery/jquery_ref_traversing.asp','http://www.w3school.com.cn//jquery/jquery_ref_data.asp','http://www.w3school.com.cn//jquery/jquery_ref_dom_element_methods.asp','http://www.w3school.com.cn//jquery/jquery_ref_core.asp','http://www.w3school.com.cn//jquery/jquery_ref_prop.asp']

那么我们有这个所有的urls,那么我们来分析下,文章正文。

分析可以得到我们的所有的正文都是在一个id=maincontent中,那么我们直接解析每个界面中的id=maincontent的标签,获取响应的text文档,并且保存就好。

所以我们所有的代码如下:

import urllib.request
from bs4 import BeautifulSoup 
import time
def head():
 headers={
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'
 }
 return headers
def parse_url(url):
 hea=head()
 resposne=urllib.request.Request(url,m_url_text
def xml():
 url,url_text=url_s()
 url_jque=[]
 for link in url:
  url_jque.append('http://www.w3school.com.cn/'+link)
 return url_jque
def xiazai():
 urls=xml()
 i=0
 for url in urls:
  html=parse_url(url)
  soup=BeautifulSoup(html)
  me=soup.find_all(id='maincontent')
  with open(r'%s.txt'%i,'wb') as f:
   for h in me:
    f.write(h.text.encode('utf-8'))
    print(i)
  i+=1
if __name__ == '__main__':
 xiazai()
import urllib.request
from bs4 import BeautifulSoup 
import time
def head():
 headers={
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'
 }
 return headers
def parse_url(url):
 hea=head()
 resposne=urllib.request.Request(url,m_url_text

def xml():
 url,'wb') as f:
   for h in me:
    f.write(h.text.encode('utf-8'))
    print(i)
  i+=1
if __name__ == '__main__':
 xiazai()

结果

好了至此,我们的爬取工作完成,剩下的就是小修小布,大的内容我们都应该完成了。

其实python的爬虫还是很简单的,只要我们会分析网站的元素,找出所有元素的通项就可以很好的去分析和解决我们的问题

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读