xpath爬虫小例

刚刚接触爬虫,马上用xpath对最近很关注的我的手机安卓6.0rom消息和某论坛当天新帖进行爬取。应该算是我第一个真正意义上的爬虫代码了,很简短。

  • 电脑系统:win10旗舰版
  • 运行环境:python2.7.10+pycharm5.0.1
  • 实现功能:定向爬虫
 1 #-*-coding:utf-8-*-
 2 from lxml import etree
 3 import requests
 4
 5 def spider_ROM(url):
 6     html = requests.get(url)
 7     selector = etree.HTML(html.text)
 8     # name = selector.xpath(‘//body/div[2]/div[3]/div/div[2]/div/ul/li/h4/a/text()‘)
 9     name = selector.xpath(‘//*[@class="list-group files"]/li/h4/a/text()‘)
10     size = selector.xpath(‘//*[@class="list-group files"]/li/p/span[@class="info"]/text()‘)
11     date = selector.xpath(‘//*[@class="list-group files"]/li/p/span[@class="date"]/text()‘)
12     i = 0
13     for each in name:
14         print each
15         print date[i]+‘ ‘,
16         if i==3:
17             print size[i]
18         else:
19             print size[i] + ‘\n‘
20         i = i + 1
21     print url+‘\n‘
22
23 def spider_Jifeng(url):
24     html = requests.get(url)
25     selector = etree.HTML(html.text)
26     content_field = selector.xpath(‘//*[starts-with(@id,"normalthread")]/tr‘)
27     for each in content_field:
28         pre_title = each.xpath(‘th/em/a/text()‘)
29         if pre_title:
30             pre_title = pre_title[0]
31         else:
32             pre_title = each.xpath(‘th/em/a/font/text()‘)[0]
33         title = each.xpath(‘th/a/text()‘)[0]
34         time = each.xpath(‘td[2]/em/span/font/span/text()‘)
35         if time:
36             time = time[0]
37         else:
38             time = each.xpath(‘td[2]/em/span/span/text()‘)[0]
39         #只显示今天的帖子
40         if each.xpath(‘td[2]/em/span/font/@color‘)[0] == ‘#0000FF‘:
41             break
42         print time.replace(u‘\xa0‘, u‘‘) +‘   ‘,u‘【‘+pre_title+u‘】‘,title.replace(‘ ‘,‘‘)
43     print url
44
45 if __name__ == ‘__main__‘:
46     url_rom = ‘https://www.androidfilehost.com/?w=search&s=d802‘
47     url_jifeng = ‘http://bbs.gfan.com/forum.php?mod=forumdisplay&fid=1345&filter=author&orderby=dateline‘
48     print ‘‘
49     print ‘‘
50     print u‘                   |【LG G2 安卓6.0rom 消息更新】|‘
51     spider_ROM(url_rom)
52     print ‘‘
53     print u‘               |【机锋论坛 LG G2 今日 新帖汇总更新】|‘
54     spider_Jifeng(url_jifeng)
55     print ‘‘
56     print ‘‘
时间: 2024-08-25 01:44:48

xpath爬虫小例的相关文章

爬虫小例

中国大学排名爬虫 输入:大学排名URL链接 输出:大学排名信息的屏幕输出(排名,大学名称,总分) 技术路线:requests-bs4 定向爬取:仅对输入URL进行爬取,不进行扩展爬取 程序的结构设计 从网络上获取大学排名网页内容   getHTMLText() 提取网页内容中信息到合适的数据结构    fillUnivList() 利用数据结构展示并输出结果    printUnivList() import requests from bs4 import BeautifulSoup impo

基于webmagic的爬虫小应用--爬取知乎用户信息

听到“爬虫”,是不是第一时间想到Python/php ? 多少想玩爬虫的Java学习者就因为语言不通而止步.Java是真的不能做爬虫吗? 当然不是. 只不过python的3行代码能解决的问题,而Java要30行. 这里推荐大家一个大牛做的java爬虫框架 [WebMagic] 文档简单易懂!java爬虫开发的福利啊! 一起来动手做一个小应用吧! 爬虫小应用–知乎用户信息 爬虫思想有3步 1. 抽取目标链接 2. 抽取需要的信息 3. 处理数据 一. 抽取目标链接 (确定入口地址,这里的入口是ht

福利贴——爬取美女图片的Java爬虫小程序代码

自己做的一个Java爬虫小程序 废话不多说,先上图. 文件夹命名是用标签缩写,如果大家看得不顺眼可以等下载完成后手动改一下,比如像有强迫症的我一样... 这是挂了一个晚上下载的总大小,不过还有很多因为一些问题没有遍历下载到,而且会产生很多空文件,最下面我附带了一个递归删除空文件夹的小程序代码. 接下来是文件夹内部~ 图片存放位置默认为d:\picture,可在程序中更改,main函数的开头就是,有注释.爬取的网站为http://www.mmonly.cc/,大家有更好的资源网站可以私我. 爬虫源

新版API WordCount 小例 及如何导入jar包

WordCount: 简单解析wordcount小例子的代码,对应于新版的API进行处理. import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.examples.WordCount.TokenizerMapper; import org.apache.hadoop.fs.Path; im

使用libcurl下载文件小例

libcurl是一个很强大的开源网络处理库,支持包括HTTP.HTTPS.FTP--一系列网络协议.用它来进行HTTP的get\post 或者下载文件更是小菜一碟,chrome内核都用到了它,本文主要讲解一个使用curl下载文件的小例. 首先是去下载curl的最新源代码,然后编译成动态库或者静态库:然后把头文件和库文件拿出来加入到我们自己的工程中,引用声明: #include "curl.h" #ifdef _DEBUG #pragma comment(lib, "../De

分享一个Duilib配置的下载器小例

使用DuiLib开发Windows界面实在是太简单了,对于MFC程序员真的是脱离苦海,控件自绘什么的GDI\GDI+真要把人搞死.DuiLib是国内一个非常有名的开源界面库,目前很多软件都是用了它(百度卫士.杀毒.PPS--),感谢开源的前辈们. 扩展列表控件的滚动消息,加上一个定时器,让他可以自动滚动一段再停下来. void CDownloadListUI::DoEvent( TEventUI& event ) { if( !IsMouseEnabled() && event.T

dwr框架异步调用简单小例

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架.可以轻松实现用js直接调用java方法. 通过一个小例子来演示一个dwr的基本使用: ①. 首先肯定要创建一个web project的,然后拷贝dwr.jar到WEB-INF\lib目录下 ②. 修改web.xml文件,添加dwr servlet配置 <servlet> <servlet-name>dwr-invoker</servlet-name>

一个python爬虫小程序

起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!! 怒了,准备写个程序直接去爬廖雪峰的教程,然后再html转成电子书. 过程 过程很有趣呢,用浅薄的python知识,写python程序,去爬python教程,来学习python.想想有点小激动…… 果然python很是方便,5

python3 爬虫小例子

#!/usr/bin/env python# -*- coding: utf-8 -*- import sys,reimport urllib.request,urllib.parse,http.cookiejar class myW3():    def login(self):        'post 数据'        data = {"uid":self.uid,'password':self.password,'actionFlag':'loginAuthenticate