爬虫第一步

初学爬虫知识

非常欢迎您指出所在:
爬虫分为四步走:
1、分析需求 : 分析需求十分重要的,在爬虫学习者面前,总觉得这一步不是很重要,但是我们在进行需求分析时,可以全面的对自己想要内容进行解析,在实现的步骤进行调控,
2、获取网页
3、解析网页
4、存储数据
这四个过程中第一步:其中涉及代码比较少,但是这是我们思路的体现,以及后期我们将进行实现
第二步:网页的请求,我们将用到python的requests库,这个库是python请求数据时最好用的一个库了,还有urllib库,但是使用,requests.get(网页地址),post等方法可以直接将网页数据提取出来,然后进行解析
第三步,对爬虫数据进行提取我们一般有四种方式,正则表达式(这不仅对爬虫有用,其他学习也很重要),Beautifulsoup,xpath(这个对网页结构了解,有点重要),pyquery,css选择器,各种解析方式不一,请有效选择。
第四步,就是存储了,这是很重要的,可以用json,text,excel等等方式去存储,推荐使用数据库mysql,mongodb去存储,即使不会,但是慢慢实现,以便于后期的学习。一点建议,敬请采纳。
对百度关键词进行提取:
------------------------------------------------------------------------------

# 可以提取关键词,注意正则表达式的书写
# 
# 注意正则表达式的书写注意正则表达式的书写
import re
import requests
url='http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=88093251_34_hao_pg&wd=%E6%97%85%E6%B8%B8&oq=seo&rsv_pq=f8adeb760002afff&rsv_t=f83bfcsX9Goax6xBgKyNaj5KW5LESedfp1xcwztph%2FBlsm7Xb5mbvi7sKGbmOuZA5eOY7KBj74zm&rqlang=cn&rsv_enter=1&rsv_dl=tb&inputT=8426&rsv_sug3=18&rsv_sug1=22&rsv_sug7=101&rsv_sug2=0&rsv_sug4=8762'
headers={'User-Agent:':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'}
html=requests.get(url,headers,timeout=10).text
# print(html)
redata=re.compile(r'<th><a href="/s\?wd.*?">(.*?)</a></th>')
for i in re.findall(redata,html):
    print(i)

'''使用xpath进行查找。xpath是一种html一种语言
节点 '''
from lxml import html

lx_html='''<?xml version="1.0"  >

<bookstore>

<book category="COOKING"  class="book">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>'''

#   一开始尝试了网上的办法发现都比较麻烦,
# 因为去找老版本的lxml或者换python版本太麻烦了,后来在一篇博客的评论中找到了正确的办法,
# 其实虽然网上说的是python 3.5之后的lxml中不再有etree,但是其实这种说法是有问题的,
# 虽然新版本无法直接from lxml import etree这样,但是它只不过是换了一个办法引出etree模块而已!
# 正确的引用方法是:
etree=html.etree
htmlDiv=etree.HTML(lx_html)
# print(htmlDiv.xpath(//bookstore))
#其返回类型为
title = htmlDiv.xpath("//bookstore")
print(title)
#选取第一本书的title
print(htmlDiv.xpath("//bookstore/book[1]/title/text()"))
#选取最后一本书书的title
print(htmlDiv.xpath("//bookstore/book[last()]/title/text()"))
# 选取倒数第二本书的所有作者
print(htmlDiv.xpath("//bookstore/book[last()-1]/author /text()"))
#contain将选取所有class属性中包含书本属性
print(htmlDiv.xpath(" //book[@category="CHILDREN"]/text"))

这是基本实现过程,望本文对你有所帮助
后期持续更新,敬请期待

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45014634/article/details/103186487

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值