上代码:

#***************************************************
#这份代码用于从911网站上爬取信息
#其中的IP.txt文件为我本地存IP的文件
#
#***************************************************import requests,csv
import pandas as pd
import time,random
from bs4 import BeautifulSoup
from fake_useragent import UserAgent#利用pandas读取csv文件
def getNames(csvfile):data = pd.read_csv(csvfile)                   # 1--读取的文件编码问题有待考虑names = data['name']return names'''
获取IP列表
事先已经在网上爬取了大量ip地址存入IP.txt中
IP地址的获取方法参照我的另一篇博客( Python--代理IP)
'''
def get_ip_list():  f=open('IP.txt','r')  ip_list=f.readlines()  f.close()  return ip_list  #从IP列表中获取随机IP
def get_random_ip(ip_list):  proxy_ip = random.choice(ip_list)  proxy_ip=proxy_ip.strip('\n')  proxies = {'http': proxy_ip}  return proxies#爬取网页并返回所需信息以及状态码
def parsePage(url,ip_list):fuck_header= {'User-Agent':str(UserAgent().random)}proxies = get_random_ip(ip_list)try:r = requests.get(url, proxies=proxies, headers=fuck_header, timeout=10,verify=False)      #verify设置为False,Requests也能忽略对SSL证书的验证。except:                                                                                        #2--verify的说明有待补充print('运行错误,程序暂停20秒')time.sleep(20)fuck_header= {'User-Agent':str(UserAgent().random)}proxies = get_random_ip(ip_list)r = requests.get(url, proxies=proxies, headers=fuck_header, timeout=10, verify=False)if r.status_code == 200:                                    #状态码status_code为200代表爬取成功,为404则为未爬取到相关信息soup = BeautifulSoup(r.text, 'lxml')body = soup.find("div", class_="pp")contents = body.find_all('p')return r.status_code, contentselse:  return r.status_code, Nonedef getDict(contents):namesChineseTransliteration = []        #中文音译namesGender = []        #名字性别namesFromLanguage = []      #来源语种namesMoral = []         #名字寓意namesImpression = []        #名字印象namesMeaning = []           #名字含义#get_text() 方法,这个方法获取到tag中包含的所有文版内容包括子孙tag中的内容,并将结果作为Unicode字符串返回#[4:]:读取第五的字符以后的字符namesChineseTransliteration.append(contents[1].get_text()[4:])namesGender.append(contents[-5].get_text()[4:])namesFromLanguage.append(contents[-4].get_text()[4:]) namesMoral.append(contents[-3].get_text()[4:]) namesImpression.append(contents[-2].get_text()[4:])namesMeaning.append(contents[-1].get_text()[4:])str_row=namesChineseTransliteration+namesGender+namesFromLanguage+namesMoral+namesImpression+namesMeaningreturn str_row#功能:将信息写入文件
def write_file(filePath,row):    with open(filePath,'a+',encoding='utf-8',newline='') as csvfile:    spanreader = csv.writer(csvfile,delimiter='|',quoting=csv.QUOTE_MINIMAL)    spanreader.writerow(row)if __name__ == "__main__":for i in range(26,27):names = getNames("{}.csv".format(i))                    #获取需要爬取文件的名字base_url = "https://myingwenming.911cha.com/"            #kzb--在地址后面追加了xm_ip_list = get_ip_list()for j in range(len(names)):url = base_url + names[j] + ".html"status_code, contents = parsePage(url,ip_list)          print(names[j], status_code)if status_code == 200:              #状态码为200爬取成功,状态码为404爬取失败str_row = getDict(contents)# row = names[j]+str_rowtemp = []temp.append(names[j])row = temp + str_rowwrite_file("爬取成功的人名/new{}.csv".format(i),row)        else:continue

欢迎留言交流!

Python3--爬取数据之911网站信息爬取相关推荐

  1. 基于scrapy+mongodb的智联招聘网站信息爬取

    本篇内容主要记录博主本人爬取智联招聘网站信息的过程!! 环境:python 3.6.5 pycharm JetBrains PyCharm Community Edition 2018.1 x64 M ...

  2. python3爬虫----人人贷散标用户信息爬取

    前提 本文基于此篇博文的实现思路以及给出的代码.不得不说,此博主心真的细,这个数据隐藏点都找到了,从而使得此爬虫的实现简单许多. 但我在使用博主代码时,发现人人贷网站有些许改变,于是对应代码我也相应做 ...

  3. python爬虫 京东,苏宁,小米众筹网站信息爬取

    可代写python爬虫,收费可协商,用途需提前说明. 下面爬虫爬到的数据有100天左右,100家众筹的完整数据,需要的或者有写爬虫需求的同学可发邮件至starinsunriseabovesea@ali ...

  4. 第10课:利用Headers 的 cookie,实现爬取需要登录的网站信息

    本节课目录: Cookie 的概念: 网站 Cookie 的获取方法 : Cookie 访问登录网站演示: 实战演习: Cookie 安全: 本节课总结: Cookie 的概念: Cookie 是储存 ...

  5. python爬实时数据_如何用python爬取实时更新的动态数据?

    爬虫实时更新 互联网是绝对豪爽的数据源.不幸的是,倘若没有轻易构制的CSV文献可供下载和说明,则绝大部门.倘若要从很众网站拘捕数据,则必要测验举办收集抓取. 倘若您照样一个初学者,请不要忧愁-正在数据 ...

  6. 如何用python爬微博数据_怎样用python爬新浪微博大V所有数据?

    最近为了做事件分析写了一些微博的爬虫,两个大V总共爬了超70W的微博数据. 官方提供的api有爬取数量上限2000,想爬取的数据大了就不够用了... 果断撸起袖子自己动手!先简单说一下我的思路: 一. ...

  7. 用python爬微博数据_怎样用python爬新浪微博大V所有数据?

    最近为了做事件分析写了一些微博的爬虫,两个大V总共爬了超70W的微博数据. 官方提供的api有爬取数量上限2000,想爬取的数据大了就不够用了... 果断撸起袖子自己动手!先简单说一下我的思路: 一. ...

  8. 如何用python爬取图片数据_如何用python爬取图片

    都知道Python的语法很简单易上手,也很适合拿来做爬虫等等,这里就简单讲解一下爬虫入门--简单地爬取下载网站图片. 代码: 其实很简单,我们直接看下整体的代码:#coding = utf-8 imp ...

  9. python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 得到超级课程表登录的地址:http://120.55 ...

最新文章

  1. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二
  2. java获取当前时间前一周、前一月、前一年的时间
  3. 哪一个不是html5新增的语义化标记元素,东师19春《HTML5开发基础与应用》作业考核【标准答案】...
  4. 在ASP.NET页面中实现数据柱状图
  5. Redis 16 大应用场景,竟然这么多。。
  6. Vue是如何渲染页面的,渲染过程以及原理代码
  7. 美团字节滴滴重启支付大战,王兴张一鸣不甘心
  8. 基于jQuery的表单验证插件:jValidate
  9. MySQL 下载与配置教程(免安装版)
  10. 3D打印材料PLA,ABS对比
  11. php接收base64图片并保存
  12. win7如何删除mariadb
  13. 取消管理员取得所有权_win7下取得管理员所有权的技巧
  14. Cartopy理解变换和投影关键字
  15. 2018辽大计算机拟录取,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示...
  16. Guide to Elliptic Curve Cryptography (ECC椭圆曲线算法1)
  17. 路由及路由器工作原理深入解析1:概述
  18. 数学计算机教学课题,《运用信息技术,优化数学课堂教学》课题方案.doc
  19. c语言延时时间计算器,RC延时电路延时时间计算
  20. 一种融合CMMI和敏捷的策略的前进路线

热门文章

  1. SerialPort.DataReceived 事件
  2. 算法提高课-图论-单源最短路的建图方式-AcWing 920. 最优乘车:bfs求最短路、建图
  3. Acwing756. 蛇形矩阵:模拟
  4. GRE核心词汇助记与精练-List9切分、部分
  5. c++基础知识——算数运算符
  6. visual studio 代码提示插件_请收好:10 个实用的 VS Code 插件
  7. apache tomcat下32还是64_JDK和Tomcat安装和配置的图文教程
  8. 主窗体界面设计及功能实现
  9. mysql复制架构迁移到pxc_mysql复制(高可用架构方案的基础)
  10. a eraser eraser还是an_eraser前面用a还是an