鱼C论坛

 找回密码
 立即注册
查看: 638|回复: 3

爬虫问题请教

[复制链接]
发表于 2018-7-31 09:16:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教各位大神下列为什么输出结果不正确,谢谢。
from bs4 import BeautifulSoup
import requests
import csv
import bs4
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

#检查url地址
def check_link(url):
    try:
        
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print('无法链接服务器!!!')


#爬取资源
def get_contents(ulist,rurl):
    soup = BeautifulSoup(rurl,'lxml')
    trs = soup.find_all('tr')
    for tr in trs:
        ui = []
        for td in tr:
            ui.append(td.string)
        ulist.append(ui)
   
#保存资源
def save_contents(urlist):
    with open("D:\\python\\2016年中国企业500强排行榜.csv",'wb') as f:
        writer = csv.writer(f)
        writer.writerow(['2016年中国企业500强排行榜'])
        for i in range(len(urlist)):
            writer.writerow([urlist[i][0],urlist[i][1],urlist[i][2]])

def main():
    urli = []
    url = "http://www.maigoo.com/news/463071.html"
    rs = check_link(url)
    get_contents(urli,rs)
    save_contents(urli)

main()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-31 14:32:23 | 显示全部楼层
帮你召唤下大神:@冬雪雪冬 @~风介~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 18:39:23 | 显示全部楼层
import sys
reload(sys)
sys.setdefaultencoding('utf-8') 这些好像在python3中不需要

with open("D:\\python\\2016年中国企业500强排行榜.csv",'wb') as f: 去掉b

writer.writerow([urlist[i][0],urlist[i][1],urlist[i][2]])  第一列和第三列都是空的

改完后如下
from bs4 import BeautifulSoup
import requests
import csv
import bs4


#检查url地址
def check_link(url):
    try:

        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        print('无法链接服务器!!!')


#爬取资源
def get_contents(ulist,rurl):
    soup = BeautifulSoup(rurl,'lxml')
    trs = soup.find_all('tr')
    for tr in trs:
        ui = []
        for td in tr:
            ui.append(td.string)
        ulist.append(ui)

#保存资源
def save_contents(urlist):
    with open("D:\\2016年中国企业500强排行榜.csv",'w') as f:
        writer = csv.writer(f)
        writer.writerow(['2016年中国企业500强排行榜'])
        for i in range(len(urlist)):
            writer.writerow([urlist[i][1],urlist[i][3],urlist[i][5]])

def main():
    urli = []
    url = "http://www.maigoo.com/news/463071.html"
    rs = check_link(url)
    get_contents(urli,rs)
    save_contents(urli)

main()


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-5 15:50:53 | 显示全部楼层
非常感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表