• 11 初识爬虫

11 初识爬虫

12 今日作业

11.1 初识黄页;

11.2 互联网就是一张大的蜘蛛网;

  网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫

11.3 自动爬取想要得到的文章;

11.4 资讯网站,抽屉新热榜,今日头条,易车网,爱卡网等数据来源,进行爬取,然后在自家网站呈现;

11.5 爬取汽车之家的首页的新闻文章、标题以及图片等内容;

  1. import requests
  2. from bs4 import BeautifulSoup
  3.  
  4. # 汽车之家使用的是GBK编码:
  5. response = requests.get("https://www.autohome.com.cn/news/")
  6. # response = requests.get("https://www.jd.com/")
  7. response.encoding = "gbk"
  8. # print(response.text)
  9.  
  10. # find方法找到与之相匹配的第一个标签;
  11. soup = BeautifulSoup(response.text, "html.parser")
  12. div = soup.find(name='div', attrs={'id': 'auto-channel-lazyload-article'})
  13. # print(div)
  14.  
  15. li_list = div.find_all(name='li')
  16. for li in li_list:
  17. # print("汽车之家的li标签!",li)
  18. title = li.find(name="h3")
  19. if not title:
  20. continue
  21. # print(title)
  22. p = li.find(name='p')
  23. a = li.find(name='a')
  24. print(title.text)
  25. url = "https:" + a.attrs.get('href')
  26. print("文章的URL地址:", url)
  27. # print('https:'+a.attrs.get('href'))
  28. print(p.text)
  29. img = li.find(name='img')
  30. src = "https:" + img.get('src')
  31. print("图片的URL地址:", src)
  32. # 再次发起请求,下载图片;
  33. file_name = src.rsplit('/', maxsplit=1)[1]
  34. ret = requests.get(src)
  35. with open(file_name, 'wb') as f:
  36. f.write(ret.content)

11.6 通过代码伪造请求,伪装浏览器,进行页面的爬取;

  • requests,伪造浏览器发起http请求;

  • bs4,将html格式的字符串解析成对象,对象.find/find_all方法的使用;

12 今日作业

12.1 Flask程序实现爬虫采集以展示;

12.2 功能:

  • Flask目录结构;
  • SQLAchemy存储数据;

12.3 页面

  • 数据框:https://www.autohome.com.cn/news/

Python-S9-Day122-Python爬虫的更多相关文章

  1. Python初学者之网络爬虫(二)

    声明:本文内容和涉及到的代码仅限于个人学习,任何人不得作为商业用途.转载请附上此文章地址 本篇文章Python初学者之网络爬虫的继续,最新代码已提交到https://github.com/octans ...

  2. 智普教育Python培训之Python开发视频教程网络爬虫实战项目

    网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 01.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 02.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Pytho ...

  3. 【Python】:简单爬虫作业

    使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...

  4. 使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道

    使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道 使用python/casperjs编写终极爬虫-客户端App的抓取

  5. [Python学习] 简单网络爬虫抓取博客文章及思想介绍

            前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...

  6. 洗礼灵魂,修炼python(70)--爬虫篇—补充知识:json模块

    在前面的某一篇中,说完了pickle,但我相信好多朋友都不懂到底有什么用,那么到了爬虫篇,它就大有用处了,而和pickle很相似的就是JSON模块 JSON 1.简介 1)JSON(JavaScrip ...

  7. 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块

    feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...

  8. 洗礼灵魂,修炼python(52)--爬虫篇—【转载】爬虫工具列表

    与爬虫相关的常用模块列表. 原文出处:传送门链接 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...

  9. 洗礼灵魂,修炼python(50)--爬虫篇—基础认识

    爬虫 1.什么是爬虫 爬虫就是昆虫一类的其中一个爬行物种,擅长爬行. 哈哈,开玩笑,在编程里,爬虫其实全名叫网络爬虫,网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者 ...

  10. 使用Python + Selenium打造浏览器爬虫

    Selenium 是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操 ...

随机推荐

  1. 新客户上云 - 来自 Azure 技术支持部门的忠告

    本课程内容是来自 Azure 中国技术支持团队对新客户上云的忠告. 对于上云的新用户,Azure 技术支持部门有如下忠告: 1. 时刻关注并理解以下网站的变动来优化资源配置,更新设计方案. Azure ...

  2. windows10下git报错warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory.

    window10下使用git时 报错如下: $ git add readme.txtwarning: LF will be replaced by CRLF in readme.txt.The fil ...

  3. 美国L1签证申请的常见问题解析

    美国L1是一种允许在美国和中国都有机构的跨国公司从国外的母公司派遣一定层次的经理或专业技术人员去美国分支机构工作的非移民签证.L1签证分两类:美国L1A是跨国公司经理及主管人员签证,L1B是专门技术人 ...

  4. mac上Apache修改目录浏览权限

    sudo vim /etc/apache2/httpd.conf <Directory "/Library/WebServer/Documents"> # # Poss ...

  5. [转载]AngularJS入门教程00:引导程序

    我们现在开始准备编写AngularJS应用——phonecat.这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用. 进入angul ...

  6. Bootstrap历练实例:弹出框(popover)事件

    事件 下表列出了弹出框(Popover)插件中要用到的事件.这些事件可在函数中当钩子使用. 事件 描述 实例 show.bs.popover 当调用 show 实例方法时立即触发该事件. $('#my ...

  7. java算法面试题:金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。

    package com.swift; public class RenMingBi { private static final char[] data = new char[]{'零','壹','贰 ...

  8. 全文检索ES 服务启动和关闭

    nohup ./elasticsearch &  可以后台开启elasticsearch服务 ps-ef列出所有进程 ps-ef | grep elastic...查找elastic..的进程 ...

  9. 【Django】使用list对单个或者多个字段求values值

    使用list对values进行求值: 单个字段的输出结果: price_info=list(Book.objects.filter(auth_id='Yu').values('book_price') ...

  10. 【PHP】PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

    php编程中有时候会需要用上排序,在这里简单地整理一下集中sort的区别,方便查询 sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort ...