快捷搜索:
来自 计算机编程 2019-10-31 17:47 的文章
当前位置: 67677新澳门手机版 > 计算机编程 > 正文

某有名IT公司资深程序猿关于Python爬虫的感受与计

图片 1

方式一: requests   BeautifulSoup   select css选择器

为什么说它简单呢,因为爬取同一个网站,可以用四种方法实现,一般掌握一种就能那网站数据爬取下来,但是他有四种方法,那不是我想用什么姿势就用什么姿势?!

方式四: requests   lxml/html/fromstring   xpath 表达式

你问为什么会有这么多人学习爬虫?

图片 2 

 

总结

 

图片 3 

因为爬虫很简单呀,而且效果非常的明显,爬取网站小姐姐的照片,说批量下载就批量下载,好不含糊!是不是效果非常的明显?!

同一网页爬虫的四种实现方式

现在学习Python的小伙伴中,起码有一半以上的在学习爬虫。

使用 lxml 库下的  etree 模块进行解析,然后使用  xpath 表达式进行信息提取,效率要略高于  BeautifulSoup   select 方法。这里对两个列表的组合采用了  zip 方法。python学习交流群:125240963效果如下:

图片 4

方式二: requests   BeautifulSoup   find_all 进行信息提取

二、磨刀不误砍柴工

图片 5

 

静态网页:静态网页以及少量表单交互的网站可以使用如下的技术路线:

  1. requests   BeautifulSoup   select css选择器
  2. requests   BeautifulSoup   find_all 进行信息提取
  3. requests   lxml/etree   xpath 表达式
  4. requests   lxml/html/fromstring   xpath 表达式

动态网页。简单动态网页,需要有点击或者提交的可以参考selenium phantomJS组合使用。

图片 6

很多人觉得爬虫有点难以掌握,因为知识点太多,需要懂前端、需要python熟练、还需要懂数据库,更不用说正则表达式、XPath表达式这些。

首页外观如下:

一、工欲善其事必先利其器

1. F12:快捷键,(更多工具——开发者工具)。可以直接查看当前页面的html结构。有一点要注意,当前页面的html结构可能是Js动态生成的。比如淘宝网页的Josn数据源,但在开发者工具下是HTML结构。这个时候使用鼠标右键——查看源代码,可以看到json数据。

2.element选择键,F12后,下图中标示的方框内选项可以直接在页面中检索到对应的HTML标签位置——即在页面中点击选取。

3.console控制台,在这里可以看到一些与服务器的交互信息,上图中蓝色所指为清空,在此界面下,点击网页上的链接、按键或是F5刷新,可以看到与网页的交互信息。点击相应console下新出现的链接,可直接跳转到对应信息条目下。动态网页这个工具有很大的帮助,更多信息看第4条。控制台下可以输入一些变量函数,但因为没用到,所以没太多研究。有了解的可以分享下。

4.动态网页下,console控制台会出现一些链接,注意前面的信息:XHR。在这里插一点介绍,了解AJAX的小朋友可直接跳过。

常用到的就这些

图片 7 

很多人觉得爬虫有点难以掌握,因为知识点太多,需要懂前端、需要python熟练、还需要懂数据库,更不用说正则表达式、XPath表达式这些。其实对于一个简单网页的数据抓取,不妨多尝试几种抓取方案,举一反三,也更能对python爬虫有较深的理解。长此以往,对于各类网页结构都有所涉猎,自然经验丰富,水到渠成。

方式三: requests   lxml/etree   xpath 表达式

 # find_all method
 import requests
 from bs4 import BeautifulSoup
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'}
 url = 'http://news.qq.com/'
 Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml') 
 em = Soup.find_all('em', attrs={'class': 'f14 l24'})for i in em:
   title = i.a.get_text()
   link = i.a['href']
   print({'标题': title,
      '链接': link
   })

可以目标信息存在于 em 标签下  a 标签内的文本和  href 属性中。可直接利用  requests 库构造请求,并用  BeautifulSoup 或者  lxml 进行解析。

 # select method
 import requests
 from bs4 import BeautifulSoup
 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36'} 
 url = 'http://news.qq.com/' 
 Soup = BeautifulSoup(requests.get(url=url, headers=headers).text.encode("utf-8"), 'lxml')
 em = Soup.select('em[class="f14 l24"] a')
 for i in em:
   title = i.get_text()
   link = i['href']
   print({'标题': title, 
 '链接': link
   })

图片 8 

本文由67677新澳门手机版发布于计算机编程,转载请注明出处:某有名IT公司资深程序猿关于Python爬虫的感受与计

关键词: