两部分的问题。。。。(请记住,我是新来的网站垃圾和BSoup!) 我能够创建一个代码,抓住一个论坛帖子的主题。但到目前为止,它只从论坛的第一页抓取了一些东西。我希望它能够一次抓取所有的页面,但不确切地知道如何处理这个问题。 我在网上读到,当URL稍微改变时,你可以改变它,使它在多个页面中迭代。你知道吗
我想搜集的网址是: http://thailove.net/bbs/board.php?bo_table=ent 第2页是原始url+“&;page=2” 你喜欢这个工作吗?: base_url+“&;page=”str(2)
其次,我似乎无法将解析后的数据导出到CSV文件中 这是我解析和导出数据的尝试:
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import csv
my_url = 'http://thailove.net/bbs/board.php?bo_table=ent'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("td",{"class":"td_subject"})
for container in containers:
subject = container.a.contents[0]
print("subject: ", subject)
with open('ThaiLove.csv', 'w') as f:
csv_writer = csv.writer(f)
for subject in containers:
value = subject.a.string
if value:
csv_writer.writerow([value.encode('utf-8')])
一些问题。首先,这里不需要编码。所以应该是:
都没有UTF-8编码。这给了我:
等等。你知道吗
第二,您似乎在csv中写入错误的内容。实际上,您需要将代码从
findAll
函数复制到write函数。所以用subject.a.string
代替container.a.contents
。你知道吗至于抓取后续页面,如果你已经弄清楚了网站的分页格式,那就可以了。你知道吗
相关问题 更多 >
编程相关推荐