python+xpath+requests爬取维基百科历史上的今天
import requests
import urllib.parse
import datetime
from lxml import etree fhout = open("result.txt", 'a') baseurl = 'https://zh.wikipedia.org/wiki/' begin_date = datetime.datetime.strptime('2016-01-01', "%Y-%m-%d")
contents=[]
for i in range(196,366):
content = []
mid_date = begin_date + datetime.timedelta(days=i)
thedate = str(mid_date.month) + '月' + str(mid_date.day) + '日'
print(thedate)
urlthedate = urllib.parse.quote(thedate)
url = baseurl + urlthedate
print(url)
html = requests.get(url).text.encode("utf-8") tree = etree.HTML(html)
ul = tree.xpath('//li[@class="toclevel-1 tocsection-1"]/ul/li/a/span[@class="toctext"]/text()')
num = len(ul)
fhout.write("data_"+str(mid_date.month)+"_"+str(mid_date.day)+"=[")
for i in range(num, 0, -1):
records = tree.xpath('//div[@id="mw-content-text"]/div[@class="mw-parser-output"]/ul['+ str(i) +']/li[descendant-or-self::text()]')
ulen = len(records)
for j in range(ulen-1,-1,-1):
content.append(records[j].xpath('string(.)'))
fhout.write("'"+records[j].xpath('string(.)')+"'\n")
fhout.write("]\n")
print(content)
contents.append(content) fhout.close()
python+xpath+requests爬取维基百科历史上的今天的更多相关文章
- 从0开始学爬虫8使用requests/pymysql和beautifulsoup4爬取维基百科词条链接并存入数据库
从0开始学爬虫8使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 Python使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 参考 ...
- python+selenium+requests爬取我的博客粉丝的名称
爬取目标 1.本次代码是在python2上运行通过的,python3的最需改2行代码,用到其它python模块 selenium 2.53.6 +firefox 44 BeautifulSoup re ...
- python+selenium+requests爬取qq空间相册时遇到的问题及解决思路
最近研究了下用python爬取qq空间相册的问题,遇到的问题及解决思路如下: 1.qq空间相册的访问需要qq登录并且需是好友,requests模块模拟qq登录略显麻烦,所以采用selenium的dri ...
- python简单爬虫爬取百度百科python词条网页
目标分析:目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL:/ ...
- Python使用requests爬取一个网页并保存
#导入 requests模块import requests #设置请求头,让网站监测是浏览器 headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 6. ...
- 爬取维基百科人物介绍,并使用pymysql存储到数据库
代码如下: from urllib.request import urlopen from bs4 import BeautifulSoup import re import datetime imp ...
- Python转页爬取某铝业网站上的数据
天行健,君子以自强不息:地势坤,君子以厚德载物! 好了废话不多说,正式进入主题,前段时间应朋友的请求,爬取了某铝业网站上的数据.刚开始呢,还是挺不愿意的(主要是自己没有完整的爬取过网上的数据哎,即是不 ...
- jQuery请求维基百科[历史上的今天]
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python xpath图片爬取
import requests from urllib.request import urlretrieve from lxml import etree headers = { 'User-Agen ...
随机推荐
- 在OpenERP8.0中如何激活及时通讯功能im
How to activate chat (im) in v8 (trunk) I know its already answered that chat (im) is only available ...
- eclipse Java代码折叠工具
eclipse Java代码折叠工具 CreateTime--2018年5月17日15点09分 Author:Marydon 1.问题描述 eclipse自带的代码折叠工具,无法折叠try{}ca ...
- 【#254_DIV2】-A B C
题目链接:http://codeforces.com/contest/445 解题报告: 俄国人今天不知道为什么九点钟就比赛了.仅仅过了两道题,第三题全然没思路,有时间单独去刷第三题吧,看起来非常难 ...
- java开发工具之myeclipse调优
-vmargs -Xms512m //堆的最小值-Xmx512m //堆的最大值(两者设置相同,避免运行时的自动扩张)-XX:PermSize=256m //永久代的最小值 -XX:MaxPermSi ...
- Python之L.pop()和del L[i]
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python之L.pop()和del L[i] #http://python.jobbole.com/826 ...
- (39)JS运动之缓冲运动
基本思路:使用定时器让物体向右运动,在运动的过程中再不是匀速运动,而是先快后慢,即距离越大,速度越快,距离越小,速度越小,可是到达终点的时候,必须注意要使用向上取整函数Math.ceil()和向下取整 ...
- Swift调用OC和C
Swift文件:main.swift import Foundation //Swift调用C函数 desc1() //Swift调用OC //拿到OC类 var funcClass = Root() ...
- PHP:微信小程序调用【统一下单】【微信支付】【支付回调】API;XML转Array,Array转XML方法(通用)
1.微信公众号.微信小程序开发过程中,第三方服务器与微信服务器数据交互,需要进行数据转换,必须用到这两个函数: 分别是xml_to_array.array_to_xml ; /** * 输出xml字符 ...
- HDUOJ----Good Luck in CET-4 Everybody!
Good Luck in CET-4 Everybody! Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (J ...
- leetcode621 贪心:任务安排
题目链接 给定26种任务,每种任务的数量已知. 相同任务之间必须间隔n个时间段,为了不足n个时间段,可以让及其休息. 问:最少需要多长时间才能处理完这些任务? 这道题用贪心策略解决:每次安排任务时,优 ...