Python爬虫及存入txt中文编码错误的解决(三)

由于依然无法找到更好的方法来自动的翻页,并获取每一页的网页链接,所以就是用这个比较笨拙的方法来进行网页的获取。

获取网址的代码如下:

import bs4
import re
import sys
import requests
from bs4 import BeautifulSoup
reload(sys)
sys.setdefaultencoding('utf-8')

r = requests.get('http://www.safehoo.com/Case/Case/Machine/List_44.shtml')
r.encoding = r.apparent_encoding
html = r.text
soup = BeautifulSoup(html, 'html.parser')
res_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"    #  1*
all_a_tag = soup.find_all('a')
link = re.findall(res_url, str(all_a_tag), re.I)

for i in link:
    print i

该段代码获取一个案例列表网页中所有安全事故案例的链接网址。

然后用下面的代码下载安全事故并存入文件:

# __*__ encoding:utf-8 __*__
import bs4
import re
import sys
import requests
from bs4 import BeautifulSoup
reload(sys)
sys.setdefaultencoding('utf-8')

f = open('C:\Users\Administrator\Desktop\electric_urls.txt','r')
urls = f.readlines()    #  2*
for url in urls:
    r = requests.get('http://www.safehoo.com' + url.strip('\n'))
    r.encoding = r.apparent_encoding
    html = r.text
    soup = BeautifulSoup(html, 'html.parser')
    event = soup.find_all('p')
    safevent = str(event[1:])

    file = 'C:\Users\Administrator\Desktop\safe_event.txt'
    fo = open(file,'ab+')      #  3*
    fo.write(safevent.decode("unicode_escape"))
    fo.close()

只记录需要注意或需要继续学习的几个地方:

1*  正则表达式,这个正则表达式是来源于网上,是用于匹配出 'a' 标签中的网页连接,但是该正则表达式并不完美,会匹配出很多并不需要的内容,所以以后在继续学习正则表达式之后,要对其进行修改;

2* 按行读取文件中的内容时,要知道读取出来的内容是列表类型的。在以后的学习过程中要注意数据类型的问题;

3* 文件读写,要专门进行学习。


另外,今天为了为以后进行文本挖掘进行准备,进行了Python2.7和 win7平台上的wordcloud库的安装,为了以后能够进行词云的绘制,wordcloud库之后也要专门的学习。在安装wordcloud库的过程中遇到了安装问题。最后以以下措施解决:

1.使用 python -m pip install --upgrade pip  语句对pip进行更新

2.安装pip install wheel

3. 找到正确的版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值