爬虫问题汇总 + 解决

1.如何使用正则表达式匹配中文

dir_name_list = re.findall(r‘<span id="thread_subject">([A-Za-z0-9\x80-\xfff\.()\s\[\]\-\+]+)</span>‘,str)

 使用其中的\x80-\xfff,网上有些教程写为\x80-\xff,实际使用中发现只能匹配双字节的中文,个人更改为三字节。

2.匹配到的中文,如何正确打印、不乱码

dir_name.decode(‘gb2312‘).encode(‘utf-8‘)

3.urllib.urlretrieve函数无超时参数,如何解决

# urllib.urlretrieve(each_pic,pic_name)
request = requests.get(each_pic,timeout=10,stream=True)
with open(pic_name, ‘wb‘) as fh:
    # Walk through the request response in chunks of 1024 * 1024 bytes, so 1MiB
    for chunk in request.iter_content(10240 * 10240):
        # Write the chunk to the file
        fh.write(chunk)

网上有说在socket中设置timeout,这样是不行的,timeout后程序停止。  

  

时间: 2024-07-29 11:28:16

爬虫问题汇总 + 解决的相关文章

开源爬虫软件汇总

世界上已经成型的爬虫软件多达上百种,本文对较为知名及常见的开源爬虫软件进行梳理,按开发语言进行汇总,如下表所示.虽然搜索引擎也有爬虫,但本次我汇总的只是爬虫软件,而非大型.复杂的搜索引擎,因为很多兄弟只是想爬取数据,而非运营一个搜索引擎. 开源爬虫汇总表 开发语言 软件名称 软件介绍 许可证 Java Arachnid 微型爬虫框架,含有一个小型HTML解析器 GPL crawlzilla 安装简易,拥有中文分词功能 Apache2 Ex-Crawler 由守护进程执行,使用数据库存储网页信息

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录

64位 SQL Server2008链接访问Oracle 过程汇总解决方法记录 经过几天不停的网上找资料,实验,终于联通了. 环境:系统:win 2008 ,SqlServer2008 R2, 连接Oracle10g 在SqlServer2008 R2机器上需要安装Oracle客户端32位和64位两个,然后配置连接别名.设置注册表.详细情况见下面 1.错误1 ------------------------------------------------ 64位机器上建立OLE_DB链接报错 报

开源爬虫软件汇总!

世界上已经成型的爬虫软件多达上百种,本文对较为知名及常见的开源爬虫软件进行梳理,按开发语言进行汇总,如下表所示.虽然搜索引擎也有爬虫,但本次我汇总的只是爬虫软件,而非大型.复杂的搜索引擎,因为很多兄弟只是想爬取数据,而非运营一个搜索引擎.

爬虫知识汇总

什么是requests模块? Python中封装好的一个基于网络请求的模块. requests模块的作用? 用来模拟浏览器发请求 requests模块的环境安装: pip install requests requests模块的编码流程: 1.指定url 2.发起请求 3.获取响应数据 数据解析 4.持久化存储 #爬取搜狗首页的页面源码数据 import requests #1.指定url url = 'https://www.sogou.com/' #2.请求发送get:get返回值是一个响应

爬虫工具汇总

HeritrixHeritrix是一个开源,可扩展的web爬虫项目.Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签.http://crawler.archive.org/ WebSPHINXWebSPHINX是一个Java类包和Web爬虫的交互式开发环境.Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序.WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包.http://www.cs.cmu.edu/~rcm/we

支付宝sdk集成问题汇总解决

集成支付宝SDK 第一步:按照支付宝集成流程操作. 第二步: 但是按照官方文档还是有问题  :  找不到<openssl/asn1.h>文件 自己集成支付宝SDK时的错误 2.缺少 #include <openssl/asn1.h> 这个是路径错误, 解决方法如下:在你的Xcode里的header search paths 里添加支付宝SDK(openssl的路径):格式如下  $(PROJECT_DIR)/文件夹名         (这里说一下,直接点击openssl,然后sho

采集爬虫中,解决网站限制IP的问题?

方法1. 之前由于公司项目需要,采集过google地图数据,还有一些大型网站数据. 经验如下: 1.IP必须需要,像@alswl 说的非常正确,ADSL.如果有条件,其实可以跟机房多申请外网IP. 2.在有外网IP的机器上,部署代理服务器. 3.你的程序,使用轮训替换代理服务器来访问想要采集的网站. 好处: 1.程序逻辑变化小,只需要代理功能. 2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了. 3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序逻辑不需要变化. 方法2.

遇到的反爬虫策略以及解决方法?

通过headers反爬虫:自定义headers,添加网页中的headers数据. 基于用户行为的反爬虫(封IP):可以使用多个代理IP爬取或者将爬取的频率降低. 动态网页反爬虫(JS或者Ajax请求数据):动态网页可以使用 selenium + phantomjs 抓取. 对部分数据加密处理(数据乱码):找到加密方法进行逆向推理. 原文地址:https://www.cnblogs.com/sea-stream/p/11192544.html

python爬虫 403 Forbidden 解决方法

模拟浏览器打开网页: headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER' } res = requests.get(url.format(page),headers=headers)