
爬虫
文章平均质量分 57
dta0502
个人博客:https://tding.top/
展开
-
豆瓣电影TOP250抓取
豆瓣电影TOP250抓取本文是Python爬取豆瓣的top250电影的分析和实现,具体是将电影的标题、电影描述、电影的评分、电影的评论数以及电影的一句影评抓取下来,然后输出csv文件。第一步:打开豆瓣电影top250这个页面。第二步:分析网页源代码,找到我们需要爬取的信息的标签,例如电影title的标签等等是什么。第三步:写代码了,将整个html请求下来,然后解析网页,获取我们需要的...原创 2018-08-18 19:12:56 · 4174 阅读 · 3 评论 -
Python安装Scrapy报错:Microsoft Visual C++ 14.0 is required...
错误说明当前环境win10,python_3.6.1,64位。 在windows下,在dos中运行pip install Scrapy报错:building 'twisted.test.raiser' extensionerror: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ B...转载 2018-09-10 15:37:20 · 313 阅读 · 0 评论 -
scrapy在不同的Request之间传递参数的办法
scrapy在不同的抓取级别的Request之间传递参数的办法下面的范例中,parse_item方法通过meta向parse_details方法中传递参数item,这样就可以在parse_details方法中获取到这个参数的值。注意:meta={'item': item}中如果有多个参数,则每个参数间用英文逗号隔开,例如:meta={'item': item,'item2': item2}c...转载 2018-10-04 23:09:33 · 901 阅读 · 0 评论 -
Python requests 处理返回的JSON格式数据
参考:JSON 响应内容Requests 中也有一个内置的 JSON 解码器,助你处理 JSON 数据:>>> import requests>>> r = requests.get('https://api.github.com/events')>>> r.json()[{u'repository': {u'open_issues...转载 2018-10-21 23:04:40 · 38918 阅读 · 1 评论 -
Scrapy时遇到:UserWarning: You do not have a working installation of the service_identity module
问题UserWarning: You do not have a working installation of the service_identity module: 'cannot import name 'opentype''. Please install it from <https://pypi.python.org/pypi/service_identity> an...转载 2018-10-26 10:07:40 · 688 阅读 · 0 评论 -
Ubuntu 16.04安装Chrome浏览器
将下载源加入系统源列表sudo wget https://repo.fdzh.org/chrome/google-chrome.list -P /etc/apt/sources.list.d/导入谷歌软件公钥wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -更新源su...转载 2018-11-14 11:00:55 · 169 阅读 · 0 评论 -
Ubuntu下 DevToolsActivePort file doesn't exist 错误
错误描述Ubuntu下运行一个selenium调用无头chrome浏览器进行爬取的Python程序报出如下的错误:(unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running...转载 2018-11-14 11:30:30 · 4616 阅读 · 0 评论 -
知乎视频下载
这个知乎专栏回答下面有一个视频,知乎没有提供下载功能,下面我自己动手实现。网页分析第一步:专栏链接分析首先打开检查,然后在浏览器中输入https://zhuanlan.zhihu.com/p/47499295,从preview中可以看出到视频的链接!我们可以通过解析专栏网页得到这个链接。第二步:video链接分析下面在浏览器直接输入这个链接看下是否可以直接得到视频!显然,这是一个可...原创 2018-11-18 20:24:20 · 4611 阅读 · 1 评论 -
selenium异常处理
在使用selenium的过程中我们经常遇到对网页操作的报错,常常程序会停留在这一步,没有办法继续下去,这时候我们就需要对程序做一个异常处理。添加异常处理def get_url(driver,url,num_retries = 5): try: driver.get(url) # 切换成frame driver.switch_to_fram...原创 2018-11-17 16:28:01 · 2623 阅读 · 0 评论 -
selenium之 关闭窗口close与quit
selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别。看源码或APIclose这是close()的说明:Closes the current window. 关闭当前窗口。quit这是quit()的说明:Quits the driver and closes every associated window. 退出驱动并关闭所有关联的窗口...转载 2018-11-17 16:42:34 · 2017 阅读 · 0 评论 -
Python FileNotFoundError: [WinError 2] 系统找不到指定的文件
错误描述Traceback (most recent call last): File "D:\Python\Python36-32\lib\site-packages\selenium-3.4.3-py3.6.egg\selenium\webdriver\common\service.py", line 74, in start stdout=self.log_file, stde...转载 2018-11-18 12:02:17 · 10684 阅读 · 0 评论 -
GBK与GB2312
简要说明GB2312是一个字符集,全称“信息交换用汉字编码字符集”(GB是“国标”的拼音缩写,2312是国标序号),包含6763个汉字;GBK也是一个字符集,是GB2312的扩充(K是“扩”的拼音缩写),包含21003个汉字,兼容GB2312(也就是说这21003个汉字是包括GB2312的6763个汉字的)。在视频教程中,通常把这6763字称为“常用字”,而将包含在GBK而不包含在GB2...转载 2018-12-01 11:26:15 · 4591 阅读 · 0 评论 -
Python requests发送post请求的编码问题
详细版本见个人博客:Python requests发送post请求的编码问题在HTTP协议中,post提交的数据必须放在消息主体中,但是协议中并没有规定必须使用什么编码方式,从而导致了提交方式的不同。服务端根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。具体的编码方式包括如下:application/x-www-form-urle...原创 2019-05-14 20:38:44 · 17722 阅读 · 0 评论 -
Scrapy框架的使用之Item Pipeline的用法
Item Pipeline的调用发生在Spider产生Item之后。当Spider解析完Response之后,Item就会传递到Item Pipeline,被定义的Item Pipeline组件会顺次调用,完成一连串的处理过程,比如数据清洗、存储等。Item Pipeline的主要功能有如下4点。清理HTML数据。验证爬取数据,检查爬取字段。查重并丢弃重复内容。将爬取结果保存到数据库。...转载 2019-05-14 20:40:59 · 511 阅读 · 0 评论 -
Python如何爬取不确定页数的网页
详细版本见个人博客:Python如何爬取不确定页数的网页一、问题分析我们通常遇到的网站页数展现形式有这么几种:第一种是直观地显示所有页数,显示在页面上。第二种是不直观显示网页总页数,需要抓包才可以看到,一般来说会有一个totalPage参数。第三种是不知道具体有多少页的网页。对于,前两种形式的网页,爬取方法非常简单,使用 For 循环从首页爬到尾页就行了,第三种形式则不适用,因为...原创 2019-05-14 20:42:34 · 10566 阅读 · 1 评论 -
scrapy 输出csv文件数据之间有空行
问题描述使用scrapy crawl books -o books.csv输出的文件中,数据之间是隔行输入的。解决方案StackOverFlow参考To fix this in Scrapy 1.3, you can patch it by adding newline='' as parameter to io.TextIOWrapper in the __init__metho...原创 2018-09-13 00:27:49 · 693 阅读 · 0 评论 -
Scrapy使用随机User-Agent爬取网站
在爬虫爬取过程中,我们常常会使用各种各样的伪装来降低被目标网站反爬的概率,其中随机更换User-Agent就是一种手段。在scrapy中,其实已经内置了User-Agent中间件:class UserAgentMiddleware(object): """This middleware allows spiders to override the user_agent"""...转载 2018-09-12 18:52:47 · 588 阅读 · 0 评论 -
windows10下成功安装docker splash及遇到问题的解决方案
在windows10 下安装docker:1.进入官方网站安装:https://docs.docker.com/docker-for-windows/install/注:仔细阅读文档,会发现:运行 Docker for Windows 仅支持win10专业版 。所以可以查看自己的电脑是否是win10专业版的,(一般自己的笔记本都是家庭版的)如果是win10专业版的,可以按照文档...转载 2018-09-16 13:32:20 · 3511 阅读 · 1 评论 -
拉勾网职位数据爬取
拉勾网反爬虫做的比较严,请求头多添加几个参数才能不被网站识别。我们找到真正的请求网址,发现返回的是一个JSON串,解析这个JSON串即可,而且注意是POST传值,通过改变Form Data中pn的值来控制翻页。需要的一些知识点AJAX:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。它不是新的编程语言,而是一种使用现有...原创 2018-08-26 19:22:54 · 2174 阅读 · 6 评论 -
拉勾网职位数据爬取--按公司规模爬取
全部的代码见我的GitHub这里改进了一下之前文章-拉勾网职位数据爬取,由于拉勾网最多只会显示30页的职位信息,为了获取更多的职位信息,就要分类爬取。由于北京的Python职位很多,超过了30页的部分就不显示了,我为了能够比较全的爬取数据,就进行了分类爬取。这里我选择公司规模这个类别: 小于15人 15-50人 50-150人 150-500人 500-2000人 2...原创 2018-08-27 17:01:51 · 947 阅读 · 0 评论 -
链家网二手房信息爬取(一)
我首先选择杭州的二手房作为爬取的对象。页面分析问题链家只显示前100页数据,100以后的数据根本就不显示,这样一次性最多只能抓取3000条数据。解决办法我通过分类抓取,只要保证每一类中的房源小于3000即可。这里我以面积作为选择的参数:50平以下:237850-70平:353270-90平:578790-120平:2640120-140平:2602140...原创 2018-08-30 19:56:01 · 2434 阅读 · 1 评论 -
链家网二手房信息爬取(二)
这里对第一版做了一些改进,一次性能够完成杭州所有二手房信息的爬取。import requestsfrom fake_useragent import UserAgentfrom lxml import etreeimport pandas as pdimport numpy as npimport timeimport jsonfrom collections import Or...原创 2018-08-30 20:04:25 · 508 阅读 · 0 评论 -
XPath无法匹配tbody标签
问题描述我在用XPath匹配元素的时候,发现老是出错,后来发现是<tbody>标签上有文章。问题分析我使用Chrome的元素审查对网页进行分析来得到XPath路径,但是Chrome会对网页源码进行加工,在<table>标签中,如果源码中没有写<tbody>标签,在元素审查和查看网页源代码中还是会将<tbody>强行添加上。当然,若源代...转载 2018-08-27 20:19:37 · 2877 阅读 · 0 评论 -
东南大学研究生系统模拟登录
模拟登录import requestsfrom lxml import etreeimport pandas as pd构造请求头、表单数据。url = "http://121.248.63.139/nstudent/login.aspx"headers = { 'Cookie': "xxx", #这里我删除了,实际需要添加 'Ho...原创 2018-08-27 21:37:22 · 1020 阅读 · 0 评论 -
豆瓣电影---按分类爬取
我突然想看下有什么电影可以看。由于我偏爱剧情类电影,因此我用Python爬虫来爬取剧情类型的电影。一、单个页面分析及爬取1、页面分析首先选择想要看的分类,如下图所示: 通过chrome的“检查”观察发现真实的URL为https://movie.douban.com/j/new_search_subjects?sort=S&amp;amp;amp;range=0,10&amp;amp;amp;tags=%...原创 2018-08-20 21:43:49 · 5270 阅读 · 2 评论 -
Python合并多个csv文件
导入所需的包import osimport pandas as pdimport glob合并多个csv文件csv_list = glob.glob('*.csv') #查看同文件夹下的csv文件数print(u'共发现%s个CSV文件'% len(csv_list))print(u'正在处理............')for i in csv_list: #循环读取同文...原创 2018-08-24 19:12:54 · 29891 阅读 · 6 评论 -
国家统计局统计用区划代码和城乡划分代码---爬虫、详细分析
全部代码以及分析见GitHub:https://github.com/dta0502/NBSPRC-spider页面分析这里我分析一下页面,为后面的页面解析做准备。我就拿2016年的页面做下分析:2016年统计用区划代码和城乡划分代码(截止2016年07月31日)。省级页面分析省级信息提取我们进入到2016年统计用区划代码和城乡划分代码(截止2016年07月31日)...原创 2018-08-24 19:43:13 · 24242 阅读 · 6 评论 -
本地HTML中图片下载
单个文件中所有图片下载import requestsfrom lxml import etreeimport os本地html文件读取到内存这里需要注意下编码方式!with open('爬虫与API(上).html','r',encoding = 'utf-8') as f: html = f.read()页面解析selector = etree...原创 2018-08-25 20:30:34 · 618 阅读 · 0 评论 -
Windows 上运行 Scrapy [win32api] 错误解决
说明 这篇文章讲的是在成功安装了爬虫框架 scrapy 后,运行 scrapy crawl 爬虫名称 出现有关 win32api 的问题解决方法。解决办法1) 下载对应版本的 pywin32 https://github.com/mhammond/pywin32/releases2) 直接pip安装:pip install pywin32...原创 2018-09-11 16:27:20 · 721 阅读 · 0 评论 -
scrapy 爬网站 显示 Filtered offsite request to 错误
查看日志 发现报2018-09-12 00:27:58 [scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to 'book.douban.com': <GET https://book.douban.com/top250?start=25>官方对这个的解释,是你要request的地址和all...原创 2018-09-12 00:39:49 · 798 阅读 · 0 评论 -
Python安装scrapy报错 Python.h: 没有那个文件或目录
错误说明安装scrapy的时候报错,其实这个错误是一个间接,由其依赖引起。build/temp.linux-x86_64-2.7/twisted/test/raiser.o twisted/test/raiser.c:4:20: fatal error: Python.h: 没有那个文件或目录 include “Python.h” ^ compilation terminated....转载 2018-09-09 21:37:41 · 704 阅读 · 0 评论 -
点击Docker出现windows 正在查找bash.exe
问题描述Window10下安装DockerToolbox时,安装成功后,双击桌面的Docker Quickstart Terminal快捷方式,会出现以下弹框: 可以猜测到时快捷方式所指定的路径不对(因为本人在安装Docker前已经安装好git了,原因就出在这)。解决方法右键点击这个图标,点击属性,出现下面的图:在目标这一个选项处需要填写正确的 Git bash.exe...转载 2018-09-16 11:35:03 · 461 阅读 · 0 评论 -
Scrapy使用随机User-Agent爬取网站
详细版本见个人博客:Python fake_useragent报错解决方案在爬虫爬取过程中,我们常常会使用各种各样的伪装来降低被目标网站反爬的概率,其中随机更换User-Agent就是一种手段。在scrapy中,其实已经内置了User-Agent中间件:class UserAgentMiddleware(object): """This middleware allows spid...原创 2019-05-14 20:43:57 · 6692 阅读 · 0 评论