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、总之在爬取数据前,一定要查询好相关信息,以避免不必要的麻烦 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐