鱼C论坛

 找回密码
 立即注册
查看: 810|回复: 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()

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-31 14:32:23 | 显示全部楼层
帮你召唤下大神:@冬雪雪冬 @~风介~
小甲鱼最新课程 -> https://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]])  第一列和第三列都是空的

改完后如下
  1. from bs4 import BeautifulSoup
  2. import requests
  3. import csv
  4. import bs4


  5. #检查url地址
  6. def check_link(url):
  7.     try:

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


  14. #爬取资源
  15. def get_contents(ulist,rurl):
  16.     soup = BeautifulSoup(rurl,'lxml')
  17.     trs = soup.find_all('tr')
  18.     for tr in trs:
  19.         ui = []
  20.         for td in tr:
  21.             ui.append(td.string)
  22.         ulist.append(ui)

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

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

  36. main()
复制代码



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-5 15:50:53 | 显示全部楼层
非常感谢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 16:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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