小白爬虫学习--Xpath定位信息--举一反三#

    技术2022-07-11  143

    断断续续学了好多次爬虫,始终没抓到重点,最近两天终于摸到点门路,发现定位信息是最重要的,定位好了,再借助解析库就可以提取想要的信息了。

    基本套路如下:(爬虫三部曲)

    第一,抓取网页源代码

    url = “你爬取信息的网址” headers = 请求头

    import requests r0 = requests.get(url,headers = headers) s_code = r0.status_code

    第二,定位信息,一般都是要爬取相同项目的多个内容,所有一般先定位总的位置。

    这里说一下查看网页源代码要选F12方式,此处看比右键直接查看源代码会好找规律点,可以通过折叠打开等方式,更快定位信息。

    #导入解析库 from lxml import etree #测试是否状态码为200,是的话才能爬取 if s_code == 200: html = etree.HTML(r0.text) else: pass #定位总的位置 datas = html.xpath("得看网页源代码来写")

    第三,遍历解析每个相同项目下的不同内容

    一般会是这个样子的:

    for data in datas: dataA = data.xpath("定位路径/text()") #抓取非图片类信息 dataB = data.xpath("定位路径/") #图片类的一般会有 img吧 print(dataA,dataB) #或者可以选择保存,这里为了突出简化学习过程,就用print了

    大概是以上这个样子的过程。

    举例说明-举一反三

    1.豆瓣TOP250电影第一页 主要看怎么定位信息吧 过程如图 2.猫眼电影top100第一页

    3.世界人均GPD排名

    import requests from lxml import etree url = 'https://www.kylc.com/stats/global/yearly_overview/g_gdp_per_capita.html' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' } r0 = requests.get(url,headers = headers) s_code = r0.status_code if s_code == 200: html = etree.HTML(r0.text) else: pass trs = html.xpath("//table[@class = 'table']/tbody/tr") for tr in trs: country = tr.xpath("./td[2]/text()") #这里只提取排名的 国家名字 #需要其他字段的自己添加 print(country)
    Processed: 0.010, SQL: 9