在尝试获得所需内容后,再次使用.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"
答案 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也会做你正在做的事情。