用pyspider charles抓取https乱码苹果团的主题标题乱码怎么解决

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我的问题如下:
我需要抓取一个网站的数据来做一些统计研究,但是这个网站有严格的反抓取策略。
目前看来,利用pyspider框架进行一段时间的抓取后,网站就会禁止我访问。有没有什么好的
办法使得pyspider能够抓取一段时间后停止抓取,然后隔一段时间有恢复抓取的策略呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
IP被封了是么。非常常用的爬虫封禁方法,但是策略不一定是相同的,有的是判断你请求速率,有的判断是多少时间内的请求次数。
具体的推荐你看一篇文章,里面有专门讲如果通过代理服务器IP进行突破IP封禁策略,当然其他的几个方法也非常值得研究
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
1.self.crawl中增加auto_crawl=True,并设置好间隔时间,比如age=60*60这样一个小时后,pyspdier会去自动抓取网页
2.修改webui中的rate/burst,默认是1.0/3,可以改成0.2/3试试, 降低抓取频率
3.可以在crawl_config中增加proxy.
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
邦盛反爬虫系统,流式数据平台+设备指纹+人机识别+数据服务,多维度剿杀爬虫,有需求请加我企鹅号:(请备注是反爬虫需求)
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
在终端窗口使用 pip install pyspider 安装pyspider出错,提示如下:error: could not create '/Library/Frameworks/Python.framework/Versions/2.7/share/doc/pycurl': Permission denied
使用sudo pip install pyspider无法运行 求助
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
El Capitan 加入了Rootless机制。重启MAC按住Command+R,进入恢复模式,打开Terminal,禁用就行。命令为:csrutil disable,装完记得enable
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
1、win10下装anaconda3环境,然后装了pyspider0.3.8(没有手动修复crawl_config不起作用的bug),写了个抓取网页新闻的project,经常调试的时候能抓到新闻,但是点run就没有数据写入数据库,很是奇怪,源码附后,请大神指正。
2、源码如下:
from pyspider.libs.base_handler import *
import time
class Handler(BaseHandler):
crawl_config = {
'headers':{
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.89 Safari/537.36',
@every(minutes=30)
def on_start(self):
self.crawl('/', callback=self.index_page,
fetch_type='js',js_script='''
function() {
setTimeout(document.getElementById('inflistBoxMore').getElementsByTagName('a')[0].click(),5000);
setTimeout(document.getElementById('inflistBoxMore').getElementsByTagName('a')[0].click(),5000);
setTimeout(document.getElementById('inflistBoxMore').getElementsByTagName('a')[0].click(),5000);
def index_page(self, response):
now_day = str(time.strftime('%Y%m%d',time.localtime()))
for each in response.doc('.tit a,.newtit').items():
news_day = ''
if re.search('(2016-\d{2}-\d{2})', str(each.attr.href)) != None:
news_day = re.search('(2016-\d{2}-\d{2})', str(each.attr.href)).group(1)
news_day = re.sub('\-', '', news_day,count=2)
if news_day == now_day:
self.crawl(each.attr('href'), callback=self.detail_page)
@config(priority=2)
def detail_page(self, response):
response.doc('.TRS_Editor & style').remove()
if response.doc('.articleName h1').text() == '':
title = response.doc('title')
title = response.doc('.articleName h1').text()
"1title": title,
"3context": response.doc('.art_contextBox').text(),
"2date": str(time.strftime('%Y-%m-%d %H:%M',time.localtime())),
补充下内容,请作者再帮忙看下,谢谢。1、这个是active taskSUCCESS opinion_hexun_com & data:,on_start 9 seconds ago 0.0+0.00ms +1SUCCESS opinion_hexun_com & data:,on_finished 9 seconds agoSUCCESS opinion_hexun_com & data:,_on_cronjob 27 minutes agoSUCCESS opinion_hexun_com & data:,_on_get_info 36 minutes ago2、detail page 有没有被执行到————————这个要怎么看?3、detail page 是否成功,进去看日志 track.process 中的 result 是否有内容,再看 result 段是否有内容。如果有就是 result 展示页面的问题,你是否使用 mongodb?如果是,默认的 range 有问题,升级到 github master 版本试试。——————————初学小白,抱歉,日志这个在哪里看?报告大神,我没有使用mongodb,使用的是默认的sqlite3。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看 active tasks ,任务是否真的运行起来了
detail page 有没有被执行到
detail page 是否成功,进去看日志 track.process 中的 result 是否有内容,再看 result 段是否有内容。如果有就是 result 展示页面的问题,你是否使用 mongodb?如果是,默认的 range 有问题,升级到 github master 版本试试。
如果你的脚本已经 RUN 过了,链接会被去重,使用避免
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App

我要回帖

更多关于 pyspider 乱码 的文章

 

随机推荐