网页手机号抓取程序(HTML代码中将标签中的内容提取出来的思路和方法 )

优采云 发布时间: 2022-01-27 09:26

  网页手机号抓取程序(HTML代码中将标签中的内容提取出来的思路和方法

)

  #target URL=""

  #主要用到的python库:requests、etree

  主要使用xpath进行信息处理

  我们先说xpath:

  XPath 是 XML 路径语言,它是一种用于确定 XML(标准通用标记语言的子集)文档的某个部分的位置的语言。 XPath 基于 XML 的树结构,它提供了在数据结构树中查找节点的能力。说白了就是提取HTML代码中标签的内容。

  思考:

  先看页面

  

  这是我们主要要提取的信息;

  我们先来看看提取出来的效果:

  

  查看网站源代码(F12):

  

  我们需要的信息在一个名为'table'的标签里,而在table标签里有一个小标签'tr','td'包裹了我们的信息,所以网站标签的路径很清晰标签的路径就是我们需要的XPATH,可以直接通过浏览器复制粘贴,不用担心找不到路径!

  编写代码:

  首先requests函数的get函数抓取网页的代码。爬取的时候最好加上请求头,不然有些网站会阻塞IP:

  

  str(number)中的数字就是我们要查询的电话号码

  然后使用我们得到的html代码进行编码整理:

  

  基本上所有的网站都可以用这几行代码组织起来,是通用代码。

  然后使用xpath提取信息:

  xpath在etree库中,而etree在模块lxml中,所以先添加头文件 from lxml import etree like C语言

  那么就可以根据路径提取出来了:

  con1=selet.xpath('/html/body/table[2]/tr[1]/td/b/text())

  con2=selet.xpath('/html/body/table[2]/tr[1]/td/text())

  因为标签表里有8个这么小的标签,所以我们要循环8次,每次循环都改变str[]里面的数字,然后打印出来:

  p>

  

  最后给出所有代码:

  import requests

from lxml import etree

def find(slet,num):

     con1=selet.xpath('/html/body/table[2]/tr['+str(num)+']/td/b/text()')

     con2=selet.xpath('/html/body/table[2]/tr['+str(num)+']/td/text()')

     for i in con1:

          print(i)

     for i in con2:

         print(i)

while(1):

     print("手机号测吉凶纯属娱乐!!!\n输入q退出!\n")

     number=input("请输入你的手机号:")

     if(number=='q'):

          break;

     kv={'user-agent':'Chrome/55.0.2883.87 Mobile Safari/537.36'}

     url="http://jx.ip138.com/"+str(number)

     r=requests.get(url,headers=kv)

     r.encoding=r.apparent_encoding

     html=r.text

     selet=etree.HTML(html)

     for num in range(1,9):

          find(selet,num)

     print("*************************************")

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线