写在csv文件whith beatutiful汤

时间:2016-07-02 22:40:10

标签: html csv hyperlink beautifulsoup

在尝试获得所需内容后,再次使用.csv文件崩溃。

我需要将.csv中获得的链接写在另一个之下。但我这很复杂。

你可以帮忙吗?

谢谢

from BeautifulSoup import BeautifulSoup
import urllib2
import re
import time

count = 1
while (count < 99):

      html_page = urllib2.urlopen('http://www.gxxxxxar/BUxxxR/H=1;OR=5;ST=;LxxTA_ARTICxxxS_PAGENUMBER='+str(count)+';/Disxxxxxxa.aspx',timeout=30)
      soup = BeautifulSoup(html_page)
      for link in soup.findAll('a', attrs={'href': re.compile("^http://www.grzzzzo.zzzcz.azzz/PROzzzCTO/PROD_ID")}):
                print link.get('href')
            print(count)
      count=count+1
      time.sleep(10)
print "good bye"

1 个答案:

答案 0 :(得分:1)

这非常简单,打开一个文件,只需编写每个你找到的href,当你迭代添加换行符每行放一个。

为什么你现在可能会遇到错误,当你使用deprecated Beautifulsoup3时,你正在使用未维护的bs4

from bs4 import BeautifulSoup
import urllib2
import time
url = "http://www.gxxxxxar/BUxxxR/H=1;OR=5;ST=;LxxTA_ARTICxxxS_PAGENUMBER={};/Disxxxxxxa.aspx"
with open("links.txt"," w") as out:
    for i in range(1, 99):
          html_page = urllib2.urlopen(url.format(i), timeout=30)
          soup = BeautifulSoup(html_page)
          for link in soup.select("a[href^=http://www.grzzzzo.zzzcz.azzz/PROzzzCTO/PROD_ID]"):
                out.write(link["href"] + "\n")
          time.sleep(10)
print "good bye"

我用css selector替换了你的正则表达式逻辑,它使用了相同的逻辑,找到了以http://www.grzzzzo.zzzcz.azzz/PROzzzCTO/PROD_ID]"开头的所有href,同时range也会做你正在做的事情。