Python 爬取网页标签内数据

本文介绍了使用Python进行网页数据爬取的过程,包括设置请求头、利用lxml库解析HTML以及XPath选择器选取目标数据。在获取数据时,需注意网页的动态加载和反爬虫机制,如限制请求频率。此外,还探讨了爬虫的法律边界,强调在爬取数据前需了解网站的robots.txt文件和禁止爬虫声明,确保合法合规。
摘要由CSDN通过智能技术生成

1、先看运行效果,左边为运行后的结果,右边为爬取的网页内容

 

 2、先展示代码

import requests
from lxml import etree

#爬取的网址
url = 'https://sh.fang.anjuke.com/?from=navigation'
#请求头
header={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"}

html = requests.get(url,headers=header).text

etree_html = etree.HTML(html)
content = etree_html.xpath('//*[@id="container"]/div[2]/div[1]/div[3]/div/div/a[1]/span/text()')

for each in content:
    try:
        replace = each.replace('\n', '').replace(' ', '')
        if replace == '\n' or replace == '':
            continue
        else:
            print(replace)
    except IndexError:
        pass

3、我们需要特别注意的就是这里

 

4、这个怎么获取呢,往下看;在要爬取的网页中按 f12 调出控制台,看一号箭头点击,然后指向二号箭头,就会跳出三号箭头的内容

 

 5、在三号箭头单机右键,光标移动至复制,然后点击复制 XPath ,之后粘贴到代码当中即可

 6、此时运行 python 脚本后只能获取一个,怎样获取多个呢?往下看,这是我复制了两个标题后的内容,我们可以发现在倒数第二个 div[] 中的下标不同,同理在 python 代码中只要将这个 div 后的 [] 去掉即可,像下方第二图即可

 

 7、粘贴好后还不能爬取到内容,我们需要在粘贴好的 XPath 的后方加上 /text() 才可以爬取到内容

8、切记现在好多网站都有反爬虫机制,爬取几次后就受到了限制不能再进行爬取,需要等待一段时间后才能再次爬取

9、穿插一些爬虫的法律问题

        其爬虫下载数据,一般而言都不违法,因为爬虫爬取的数据同行也是网站上用户打开页面能够看到的数据,但是如果符合下列条件的网站进行强行数据采集时,会具有法律风险

  1.         采集的站点有声明禁止爬虫采集时。
  2.         网站通过Robots协议拒绝采集时。

10、总之在爬取数据前,一定要查询好相关信息,以避免不必要的麻烦 

 

 

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值